<html><body>
<style>

body, h1, h2, h3, div, span, p, pre, a {
  margin: 0;
  padding: 0;
  border: 0;
  font-weight: inherit;
  font-style: inherit;
  font-size: 100%;
  font-family: inherit;
  vertical-align: baseline;
}

body {
  font-size: 13px;
  padding: 1em;
}

h1 {
  font-size: 26px;
  margin-bottom: 1em;
}

h2 {
  font-size: 24px;
  margin-bottom: 1em;
}

h3 {
  font-size: 20px;
  margin-bottom: 1em;
  margin-top: 1em;
}

pre, code {
  line-height: 1.5;
  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
}

pre {
  margin-top: 0.5em;
}

h1, h2, h3, p {
  font-family: Arial, sans serif;
}

h1, h2, h3 {
  border-bottom: solid #CCC 1px;
}

.toc_element {
  margin-top: 0.5em;
}

.firstline {
  margin-left: 2 em;
}

.method  {
  margin-top: 1em;
  border: solid 1px #CCC;
  padding: 1em;
  background: #EEE;
}

.details {
  font-weight: bold;
  font-size: 14px;
}

</style>

<h1><a href="compute_beta.html">Compute Engine API</a> . <a href="compute_beta.interconnectAttachments.html">interconnectAttachments</a></h1>
<h2>Instance Methods</h2>
<p class="toc_element">
  <code><a href="#aggregatedList">aggregatedList(project, filter=None, includeAllScopes=None, maxResults=None, orderBy=None, pageToken=None, returnPartialSuccess=None, serviceProjectNumber=None, x__xgafv=None)</a></code></p>
<p class="firstline">Retrieves an aggregated list of interconnect attachments.</p>
<p class="toc_element">
  <code><a href="#aggregatedList_next">aggregatedList_next()</a></code></p>
<p class="firstline">Retrieves the next page of results.</p>
<p class="toc_element">
  <code><a href="#close">close()</a></code></p>
<p class="firstline">Close httplib2 connections.</p>
<p class="toc_element">
  <code><a href="#delete">delete(project, region, interconnectAttachment, requestId=None, x__xgafv=None)</a></code></p>
<p class="firstline">Deletes the specified interconnect attachment.</p>
<p class="toc_element">
  <code><a href="#get">get(project, region, interconnectAttachment, x__xgafv=None)</a></code></p>
<p class="firstline">Returns the specified interconnect attachment.</p>
<p class="toc_element">
  <code><a href="#insert">insert(project, region, body=None, requestId=None, validateOnly=None, x__xgafv=None)</a></code></p>
<p class="firstline">Creates an InterconnectAttachment in the specified project using the data</p>
<p class="toc_element">
  <code><a href="#list">list(project, region, filter=None, maxResults=None, orderBy=None, pageToken=None, returnPartialSuccess=None, x__xgafv=None)</a></code></p>
<p class="firstline">Retrieves the list of interconnect attachments contained within</p>
<p class="toc_element">
  <code><a href="#list_next">list_next()</a></code></p>
<p class="firstline">Retrieves the next page of results.</p>
<p class="toc_element">
  <code><a href="#patch">patch(project, region, interconnectAttachment, body=None, requestId=None, x__xgafv=None)</a></code></p>
<p class="firstline">Updates the specified interconnect attachment with the data included in the</p>
<p class="toc_element">
  <code><a href="#setLabels">setLabels(project, region, resource, body=None, requestId=None, x__xgafv=None)</a></code></p>
<p class="firstline">Sets the labels on an InterconnectAttachment. To learn more about labels,</p>
<p class="toc_element">
  <code><a href="#testIamPermissions">testIamPermissions(project, region, resource, body=None, x__xgafv=None)</a></code></p>
<p class="firstline">Returns permissions that a caller has on the specified resource.</p>
<h3>Method Details</h3>
<div class="method">
    <code class="details" id="aggregatedList">aggregatedList(project, filter=None, includeAllScopes=None, maxResults=None, orderBy=None, pageToken=None, returnPartialSuccess=None, serviceProjectNumber=None, x__xgafv=None)</code>
  <pre>Retrieves an aggregated list of interconnect attachments.

To prevent failure, Google recommends that you set the
`returnPartialSuccess` parameter to `true`.

Args:
  project: string, Project ID for this request. (required)
  filter: string, A filter expression that filters resources listed in the response. Most
Compute resources support two types of filter expressions:
expressions that support regular expressions and expressions that follow
API improvement proposal AIP-160.
These two types of filter expressions cannot be mixed in one request.

If you want to use AIP-160, your expression must specify the field name, an
operator, and the value that you want to use for filtering. The value
must be a string, a number, or a boolean. The operator
must be either `=`, `!=`, `&gt;`, `&lt;`, `&lt;=`, `&gt;=` or `:`.

For example, if you are filtering Compute Engine instances, you can
exclude instances named `example-instance` by specifying
`name != example-instance`.

The `:*` comparison can be used to test whether a key has been defined.
For example, to find all objects with `owner` label use:
```
labels.owner:*
```

You can also filter nested fields. For example, you could specify
`scheduling.automaticRestart = false` to include instances only
if they are not scheduled for automatic restarts. You can use filtering
on nested fields to filter based onresource labels.

To filter on multiple expressions, provide each separate expression within
parentheses. For example:
```
(scheduling.automaticRestart = true)
(cpuPlatform = &quot;Intel Skylake&quot;)
```
By default, each expression is an `AND` expression. However, you
can include `AND` and `OR` expressions explicitly.
For example:
```
(cpuPlatform = &quot;Intel Skylake&quot;) OR
(cpuPlatform = &quot;Intel Broadwell&quot;) AND
(scheduling.automaticRestart = true)
```

If you want to use a regular expression, use the `eq` (equal) or `ne`
(not equal) operator against a single un-parenthesized expression with or
without quotes or against multiple parenthesized expressions. Examples:

`fieldname eq unquoted literal`
`fieldname eq &#x27;single quoted literal&#x27;`
`fieldname eq &quot;double quoted literal&quot;`
`(fieldname1 eq literal) (fieldname2 ne &quot;literal&quot;)`

The literal value is interpreted as a regular expression using GoogleRE2 library syntax.
The literal value must match the entire field.

For example, to filter for instances that do not end with name &quot;instance&quot;,
you would use `name ne .*instance`.

You cannot combine constraints on multiple fields using regular
expressions.
  includeAllScopes: boolean, Indicates whether every visible scope for each scope type (zone, region,
global) should be included in the response. For new resource types added
after this field, the flag has no effect as new resource types will always
include every visible scope for each scope type in response. For resource
types which predate this field, if this flag is omitted or false, only
scopes of the scope types where the resource type is expected to be found
will be included.
  maxResults: integer, The maximum number of results per page that should be returned.
If the number of available results is larger than `maxResults`,
Compute Engine returns a `nextPageToken` that can be used to get
the next page of results in subsequent list requests. Acceptable values are
`0` to `500`, inclusive. (Default: `500`)
  orderBy: string, Sorts list results by a certain order. By default, results
are returned in alphanumerical order based on the resource name.

You can also sort results in descending order based on the creation
timestamp using `orderBy=&quot;creationTimestamp desc&quot;`. This sorts
results based on the `creationTimestamp` field in
reverse chronological order (newest result first). Use this to sort
resources like operations so that the newest operation is returned first.

Currently, only sorting by `name` or
`creationTimestamp desc` is supported.
  pageToken: string, Specifies a page token to use. Set `pageToken` to the
`nextPageToken` returned by a previous list request to get
the next page of results.
  returnPartialSuccess: boolean, Opt-in for partial success behavior which provides partial results in case
of failure. The default value is false.

For example, when partial success behavior is enabled, aggregatedList for a
single zone scope either returns all resources in the zone or no resources,
with an error code.
  serviceProjectNumber: string, The Shared VPC service project id or service project number for which
aggregated list request is invoked for subnetworks list-usable api.
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    {
  &quot;id&quot;: &quot;A String&quot;, # [Output Only] Unique identifier for the resource; defined by the server.
  &quot;items&quot;: { # A list of InterconnectAttachmentsScopedList resources.
    &quot;a_key&quot;: { # Name of the scope containing this set of interconnect attachments.
      &quot;interconnectAttachments&quot;: [ # A list of interconnect attachments contained in this scope.
        { # Represents an Interconnect Attachment (VLAN) resource.
            #
            # You can use Interconnect attachments (VLANS) to connect your Virtual Private
            # Cloud networks to your on-premises networks through an Interconnect.
            # For more information, read
            # Creating VLAN Attachments.
          &quot;adminEnabled&quot;: True or False, # Determines whether this Attachment will carry packets.
              # Not present for PARTNER_PROVIDER.
          &quot;attachmentGroup&quot;: &quot;A String&quot;, # [Output Only] URL of the AttachmentGroup that includes this Attachment.
          &quot;bandwidth&quot;: &quot;A String&quot;, # Provisioned bandwidth capacity for the interconnect attachment. For
              # attachments of type DEDICATED, the user can set the bandwidth.
              # For attachments of type PARTNER, the Google Partner that is operating
              # the interconnect must set the bandwidth.
              # Output only for PARTNER type, mutable for PARTNER_PROVIDER and DEDICATED,
              # and can take one of the following values:
              #
              #    - BPS_50M: 50 Mbit/s
              #    - BPS_100M: 100 Mbit/s
              #    - BPS_200M: 200 Mbit/s
              #    - BPS_300M: 300 Mbit/s
              #    - BPS_400M: 400 Mbit/s
              #    - BPS_500M: 500 Mbit/s
              #    - BPS_1G: 1 Gbit/s
              #    - BPS_2G: 2 Gbit/s
              #    - BPS_5G: 5 Gbit/s
              #    - BPS_10G: 10 Gbit/s
              #    - BPS_20G: 20 Gbit/s
              #    - BPS_50G: 50 Gbit/s
              #    - BPS_100G: 100 Gbit/s
          &quot;candidateCloudRouterIpAddress&quot;: &quot;A String&quot;, # Single IPv4 address + prefix length to be configured on the cloud router
              # interface for this interconnect attachment.
              #
              #    - Both candidate_cloud_router_ip_address and
              #    candidate_customer_router_ip_address fields must be set or both must be
              #    unset.
              #    - Prefix length of both candidate_cloud_router_ip_address and
              #    candidate_customer_router_ip_address must be the same.
              #    - Max prefix length is 31.
          &quot;candidateCloudRouterIpv6Address&quot;: &quot;A String&quot;, # Single IPv6 address + prefix length to be configured on the cloud router
              # interface for this interconnect attachment.
              #
              #    - Both candidate_cloud_router_ipv6_address and
              #    candidate_customer_router_ipv6_address fields must be set or both must be
              #    unset.
              #    - Prefix length of both candidate_cloud_router_ipv6_address and
              #    candidate_customer_router_ipv6_address must be the same.
              #    - Max prefix length is 126.
          &quot;candidateCustomerRouterIpAddress&quot;: &quot;A String&quot;, # Single IPv4 address + prefix length to be configured on the customer router
              # interface for this interconnect attachment.
          &quot;candidateCustomerRouterIpv6Address&quot;: &quot;A String&quot;, # Single IPv6 address + prefix length to be configured on the customer router
              # interface for this interconnect attachment.
          &quot;candidateIpv6Subnets&quot;: [ # This field is not available.
            &quot;A String&quot;,
          ],
          &quot;candidateSubnets&quot;: [ # Input only. Up to 16 candidate prefixes that can be used to restrict the allocation
              # of cloudRouterIpAddress and customerRouterIpAddress for this attachment.
              # All prefixes must be within link-local address space (169.254.0.0/16) and
              # must be /29 or shorter (/28, /27, etc). Google will attempt to select an
              # unused /29 from the supplied candidate prefix(es). The request will fail if
              # all possible /29s are in use on Google&#x27;s edge. If not supplied, Google will
              # randomly select an unused /29 from all of link-local space.
            &quot;A String&quot;,
          ],
          &quot;cloudRouterIpAddress&quot;: &quot;A String&quot;, # [Output Only] IPv4 address + prefix length to be configured on Cloud Router
              # Interface for this interconnect attachment.
          &quot;cloudRouterIpv6Address&quot;: &quot;A String&quot;, # [Output Only] IPv6 address + prefix length to be configured on Cloud
              # Router Interface for this interconnect attachment.
          &quot;cloudRouterIpv6InterfaceId&quot;: &quot;A String&quot;, # This field is not available.
          &quot;configurationConstraints&quot;: { # [Output Only] Constraints for this attachment, if any. The attachment does
              # not work if these constraints are not met.
            &quot;bgpMd5&quot;: &quot;A String&quot;, # [Output Only] Whether the attachment&#x27;s BGP session
                # requires/allows/disallows BGP MD5 authentication. This can take one of
                # the following values: MD5_OPTIONAL, MD5_REQUIRED, MD5_UNSUPPORTED.
                #
                # For example, a Cross-Cloud Interconnect connection to a remote cloud
                # provider that requires BGP MD5 authentication has the
                # interconnectRemoteLocation attachment_configuration_constraints.bgp_md5
                # field set to MD5_REQUIRED, and that property is propagated to the
                # attachment. Similarly, if BGP MD5 is MD5_UNSUPPORTED, an error is
                # returned if MD5 is requested.
            &quot;bgpPeerAsnRanges&quot;: [ # [Output Only] List of ASN ranges that the remote location is known to
                # support. Formatted as an array of inclusive ranges {min: min-value, max:
                # max-value}. For example, [{min: 123, max: 123}, {min: 64512, max: 65534}]
                # allows the peer ASN to be 123 or anything in the range 64512-65534.
                #
                # This field is only advisory. Although the API accepts other ranges, these
                # are the ranges that we recommend.
              {
                &quot;max&quot;: 42,
                &quot;min&quot;: 42,
              },
            ],
          },
          &quot;creationTimestamp&quot;: &quot;A String&quot;, # [Output Only] Creation timestamp inRFC3339
              # text format.
          &quot;customerRouterIpAddress&quot;: &quot;A String&quot;, # [Output Only] IPv4 address + prefix length to be configured on the customer
              # router subinterface for this interconnect attachment.
          &quot;customerRouterIpv6Address&quot;: &quot;A String&quot;, # [Output Only] IPv6 address + prefix length to be configured on the
              # customer router subinterface for this interconnect attachment.
          &quot;customerRouterIpv6InterfaceId&quot;: &quot;A String&quot;, # This field is not available.
          &quot;dataplaneVersion&quot;: 42, # [Output Only] Dataplane version for this InterconnectAttachment. This
              # field is only present for Dataplane version 2 and higher. Absence of this
              # field in the API output indicates that the Dataplane is version 1.
          &quot;description&quot;: &quot;A String&quot;, # An optional description of this resource.
          &quot;edgeAvailabilityDomain&quot;: &quot;A String&quot;, # Input only. Desired availability domain for the attachment. Only available for type
              # PARTNER, at creation time, and can take one of the following values:
              #
              #    - AVAILABILITY_DOMAIN_ANY
              #    - AVAILABILITY_DOMAIN_1
              #    - AVAILABILITY_DOMAIN_2
              #
              #
              # For improved reliability, customers should configure a pair of attachments,
              # one per availability domain. The selected availability domain will be
              # provided to the Partner via the pairing key, so that the provisioned
              # circuit will lie in the specified domain. If not specified, the value will
              # default to AVAILABILITY_DOMAIN_ANY.
          &quot;encryption&quot;: &quot;A String&quot;, # Indicates the user-supplied encryption option of this VLAN attachment
              # (interconnectAttachment). Can only be specified at attachment creation
              # for PARTNER or DEDICATED attachments.
              # Possible values are:
              #
              #    - NONE - This is the default value, which means that the
              #    VLAN attachment carries unencrypted traffic. VMs are able to send
              #    traffic to, or receive traffic from, such a VLAN attachment.
              #    - IPSEC - The VLAN attachment carries only encrypted
              #    traffic that is encrypted by an IPsec device, such as an HA VPN gateway or
              #    third-party IPsec VPN. VMs cannot directly send traffic to, or receive
              #    traffic from, such a VLAN attachment. To use *HA VPN over Cloud
              #    Interconnect*, the VLAN attachment must be created with this
              #    option.
          &quot;googleReferenceId&quot;: &quot;A String&quot;, # [Output Only] Google reference ID, to be used when raising support tickets
              # with Google or otherwise to debug backend connectivity issues.
              # [Deprecated] This field is not used.
          &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the resource. This identifier is
              # defined by the server.
          &quot;interconnect&quot;: &quot;A String&quot;, # URL of the underlying Interconnect object that this attachment&#x27;s traffic
              # will traverse through.
          &quot;ipsecInternalAddresses&quot;: [ # A list of URLs of addresses that have been reserved for the VLAN
              # attachment. Used only for the VLAN attachment that has the encryption
              # option as IPSEC. The addresses must be regional internal IP address ranges.
              # When creating an HA VPN gateway over the VLAN attachment, if the attachment
              # is configured to use a regional internal IP address, then the VPN gateway&#x27;s
              # IP address is allocated from the IP address range specified here. For
              # example, if the HA VPN gateway&#x27;s interface 0 is paired to this VLAN
              # attachment, then a regional internal IP address for the VPN gateway
              # interface 0 will be allocated from the IP address specified for this
              # VLAN attachment.
              # If this field is not specified when creating the VLAN attachment, then
              # later on when creating an HA VPN gateway on this VLAN attachment, the HA
              # VPN gateway&#x27;s IP address is allocated from the regional external IP address
              # pool.
            &quot;A String&quot;,
          ],
          &quot;kind&quot;: &quot;compute#interconnectAttachment&quot;, # [Output Only] Type of the resource. Alwayscompute#interconnectAttachment for interconnect attachments.
          &quot;l2Forwarding&quot;: { # L2 Interconnect Attachment related configuration. # L2 Interconnect Attachment related config. This field is required if the
              # type is L2_DEDICATED.
              #
              # The configuration specifies how VLAN tags (like dot1q, qinq, or dot1ad)
              # within L2 packets are mapped to the destination appliances IP addresses.
              # The packet is then encapsulated with the appliance IP address and sent to
              # the edge appliance.
            &quot;applianceMappings&quot;: { # Optional. A map of VLAN tags to appliances and optional inner mapping
                # rules. If VLANs are not explicitly mapped to any appliance, the
                # defaultApplianceIpAddress is used.
                #
                # Each VLAN tag can be a single number or a range of numbers in the range
                # of 1 to 4094, e.g., &quot;1&quot; or &quot;4001-4094&quot;. Non-empty and non-overlapping
                # VLAN tag ranges are enforced, and violating operations will be rejected.
                #
                # The VLAN tags in the Ethernet header must use an ethertype value of
                # 0x88A8 or 0x8100.
              &quot;a_key&quot;: { # Two-level VLAN-to-Appliance mapping rule.
                &quot;applianceIpAddress&quot;: &quot;A String&quot;, # Optional. A single IPv4 or IPv6 address used as the destination IP
                    # address for ingress packets that match on a VLAN tag, but do not match
                    # a more specific inner VLAN tag.
                    #
                    # Unset field (null-value) indicates both VLAN tags are required to be
                    # mapped. Otherwise, defaultApplianceIpAddress is used.
                &quot;innerVlanToApplianceMappings&quot;: [ # Optional. Used to match against the inner VLAN when the packet
                    # contains two VLAN tags.
                    #
                    # A list of mapping rules from inner VLAN tags to IP addresses. If the
                    # inner VLAN is not explicitly mapped to an IP address range, the
                    # applianceIpAddress is used.
                  { # The inner VLAN-to-Appliance mapping.
                    &quot;innerApplianceIpAddress&quot;: &quot;A String&quot;, # Required in this object. A single IPv4 or IPv6 address used as the
                        # destination IP address for ingress packets that match on both VLAN
                        # tags.
                    &quot;innerVlanTags&quot;: [ # Required in this object. Used to match the inner VLAN tag on the
                        # packet. Each entry can be a single number or a range of numbers in
                        # the range of 1 to 4094, e.g., [&quot;1&quot;, &quot;4001-4094&quot;] is valid. Non-empty
                        # and Non-overlapping VLAN tag ranges are enforced, and violating
                        # operations will be rejected.
                        #
                        # The inner VLAN tags must have an ethertype value of 0x8100.
                      &quot;A String&quot;,
                    ],
                  },
                ],
                &quot;name&quot;: &quot;A String&quot;, # Optional. The name of this appliance mapping rule.
              },
            },
            &quot;defaultApplianceIpAddress&quot;: &quot;A String&quot;, # Optional. A single IPv4 or IPv6 address used as the default destination
                # IP when there is no VLAN mapping result found.
                #
                # Unset field (null-value) indicates the unmatched packet should be
                # dropped.
            &quot;geneveHeader&quot;: { # GeneveHeader related configurations. # Optional. It represents the structure of a Geneve (Generic Network
                # Virtualization Encapsulation) header, as defined in RFC8926. It encapsulates packets from various
                # protocols (e.g., Ethernet, IPv4, IPv6) for use in network virtualization
                # environments.
              &quot;vni&quot;: 42, # Optional. VNI is a 24-bit unique virtual network identifier, from 0 to
                  # 16,777,215.
            },
            &quot;network&quot;: &quot;A String&quot;, # Required. Resource URL of the network to which this attachment belongs.
            &quot;tunnelEndpointIpAddress&quot;: &quot;A String&quot;, # Required. A single IPv4 or IPv6 address. This address will be used as the
                # source IP address for packets sent to the appliances, and must be used as
                # the destination IP address for packets that should be sent out through
                # this attachment.
          },
          &quot;labelFingerprint&quot;: &quot;A String&quot;, # A fingerprint for the labels being applied to this InterconnectAttachment,
              # which is essentially a hash of the labels set used for optimistic locking.
              # The fingerprint is initially generated by Compute Engine and changes after
              # every request to modify or update labels. You must always provide an
              # up-to-date fingerprint hash in order to update or change labels,
              # otherwise the request will fail with error412 conditionNotMet.
              #
              # To see the latest fingerprint, make a get() request to
              # retrieve an InterconnectAttachment.
          &quot;labels&quot;: { # Labels for this resource. These can only be added or modified by thesetLabels method. Each label key/value pair must comply withRFC1035.
              # Label values may be empty.
            &quot;a_key&quot;: &quot;A String&quot;,
          },
          &quot;mtu&quot;: 42, # Maximum Transmission Unit (MTU), in bytes, of packets passing through this
              # interconnect attachment.
              # Valid values are 1440, 1460, 1500, and 8896. If not specified,
              # the value will default to 1440.
          &quot;name&quot;: &quot;A String&quot;, # Name of the resource. Provided by the client when the resource is created.
              # The name must be 1-63 characters long, and comply withRFC1035.
              # Specifically, the name must be 1-63 characters long and match the regular
              # expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first
              # character must be a lowercase letter, and all following characters must
              # be a dash, lowercase letter, or digit, except the last character, which
              # cannot be a dash.
          &quot;operationalStatus&quot;: &quot;A String&quot;, # [Output Only] The current status of whether or not this interconnect
              # attachment is functional, which can take one of the following values:
              #
              #    - OS_ACTIVE: The attachment has been turned up and is ready to
              #    use.
              #    - OS_UNPROVISIONED: The attachment is not ready to use yet,
              #    because turnup is not complete.
          &quot;pairingKey&quot;: &quot;A String&quot;, # [Output only for type PARTNER. Input only for PARTNER_PROVIDER. Not
              # present for DEDICATED].
              # The opaque identifier of a PARTNER attachment used to initiate
              # provisioning with a selected partner.
              # Of the form &quot;XXXXX/region/domain&quot;
          &quot;params&quot;: { # Additional interconnect attachment parameters. # Input only. [Input Only] Additional params passed with the request, but not persisted
              # as part of resource payload.
            &quot;resourceManagerTags&quot;: { # Tag keys/values directly bound to this resource.
                # Tag keys and values have the same definition as resource
                # manager tags. The field is allowed for INSERT
                # only. The keys/values to set on the resource should be specified in
                # either ID { : } or Namespaced format
                # { : }.
                # For example the following are valid inputs:
                # * {&quot;tagKeys/333&quot; : &quot;tagValues/444&quot;, &quot;tagKeys/123&quot; : &quot;tagValues/456&quot;}
                # * {&quot;123/environment&quot; : &quot;production&quot;, &quot;345/abc&quot; : &quot;xyz&quot;}
                # Note:
                # * Invalid combinations of ID &amp; namespaced format is not supported. For
                #   instance: {&quot;123/environment&quot; : &quot;tagValues/444&quot;} is invalid.
                # * Inconsistent format is not supported. For instance:
                #   {&quot;tagKeys/333&quot; : &quot;tagValues/444&quot;, &quot;123/env&quot; : &quot;prod&quot;} is invalid.
              &quot;a_key&quot;: &quot;A String&quot;,
            },
          },
          &quot;partnerAsn&quot;: &quot;A String&quot;, # Optional BGP ASN for the router supplied by a Layer 3 Partner if they
              # configured BGP on behalf of the customer.
              # Output only for PARTNER type, input only for PARTNER_PROVIDER, not
              # available for DEDICATED.
          &quot;partnerMetadata&quot;: { # Informational metadata about Partner attachments from Partners to display # Informational metadata about Partner attachments from Partners to display
              # to customers.
              # Output only for PARTNER type, mutable for PARTNER_PROVIDER, not
              # available for DEDICATED.
              # to customers.  These fields are propagated from PARTNER_PROVIDER
              # attachments to their corresponding PARTNER attachments.
            &quot;interconnectName&quot;: &quot;A String&quot;, # Plain text name of the Interconnect this attachment is connected to, as
                # displayed in the Partner&#x27;s portal. For instance &quot;Chicago 1&quot;.
                # This value may be validated to match approved Partner values.
            &quot;partnerName&quot;: &quot;A String&quot;, # Plain text name of the Partner providing this attachment.
                # This value may be validated to match approved Partner values.
            &quot;portalUrl&quot;: &quot;A String&quot;, # URL of the Partner&#x27;s portal for this Attachment. Partners may customise
                # this to be a deep link to the specific resource on the Partner portal.
                # This value may be validated to match approved Partner values.
          },
          &quot;privateInterconnectInfo&quot;: { # Information for an interconnect attachment when this belongs to an # [Output Only] Information specific to an InterconnectAttachment.
              # This property is populated if the interconnect that
              # this is attached to is of type DEDICATED.
              # interconnect of type DEDICATED.
            &quot;tag8021q&quot;: 42, # [Output Only] 802.1q encapsulation tag to be used for traffic between
                # Google and the customer, going to and from this network and region.
          },
          &quot;region&quot;: &quot;A String&quot;, # [Output Only] URL of the region where the regional interconnect attachment
              # resides.
              # You must specify this field as part of the HTTP request URL. It is
              # not settable as a field in the request body.
          &quot;remoteService&quot;: &quot;A String&quot;, # [Output Only]
              # If the attachment is on a Cross-Cloud Interconnect connection, this field
              # contains the interconnect&#x27;s remote location service provider. Example
              # values: &quot;Amazon Web Services&quot; &quot;Microsoft Azure&quot;.
              #
              # The field is set only for attachments on Cross-Cloud Interconnect
              # connections. Its value is copied from the InterconnectRemoteLocation
              # remoteService field.
          &quot;router&quot;: &quot;A String&quot;, # URL of the Cloud Router to be used for dynamic routing. This router must be
              # in the same region as this InterconnectAttachment. The
              # InterconnectAttachment will automatically connect the Interconnect to the
              # network &amp; region within which the Cloud Router is configured.
          &quot;satisfiesPzs&quot;: True or False, # [Output Only] Reserved for future use.
          &quot;selfLink&quot;: &quot;A String&quot;, # [Output Only] Server-defined URL for the resource.
          &quot;stackType&quot;: &quot;A String&quot;, # The stack type for this interconnect attachment to identify whether the
              # IPv6 feature is enabled or not. If not specified, IPV4_ONLY
              # will be used.
              #
              # This field can be both set at interconnect attachments creation and
              # update interconnect attachment operations.
          &quot;state&quot;: &quot;A String&quot;, # [Output Only] The current state of this attachment&#x27;s functionality.
              # Enum values ACTIVE and UNPROVISIONED are shared by DEDICATED/PRIVATE,
              # PARTNER, and PARTNER_PROVIDER interconnect attachments, while enum values
              # PENDING_PARTNER, PARTNER_REQUEST_RECEIVED, and PENDING_CUSTOMER are used
              # for only PARTNER and PARTNER_PROVIDER interconnect attachments.
              # This state can take one of the following values:
              #
              #    - ACTIVE: The attachment has been turned up and is ready to use.
              #    - UNPROVISIONED: The attachment is not ready to use yet, because turnup
              #    is not complete.
              #    - PENDING_PARTNER: A newly-created PARTNER attachment that has not yet
              #    been configured on the Partner side.
              #    - PARTNER_REQUEST_RECEIVED: A PARTNER attachment is in the process of
              #    provisioning after a PARTNER_PROVIDER attachment was created that
              #    references it.
              #    - PENDING_CUSTOMER: A PARTNER or PARTNER_PROVIDER
              #    attachment that is waiting for a customer to activate it.
              #    - DEFUNCT:
              #    The attachment was deleted externally and is no longer functional. This
              #    could be because the associated Interconnect was removed, or because the
              #    other side of a Partner attachment was deleted.
          &quot;subnetLength&quot;: 42, # Input only. Length of the IPv4 subnet mask.
              # Allowed values:
              #
              #
              #     - 29 (default)
              #     - 30
              #
              # The default value is 29, except for Cross-Cloud Interconnect
              # connections that use an InterconnectRemoteLocation with a
              # constraints.subnetLengthRange.min equal to 30. For example,
              # connections that use an Azure remote location fall into this
              # category. In these cases, the default value is 30, and requesting
              # 29 returns an error.
              #
              # Where both 29 and 30 are allowed, 29 is preferred, because it gives
              # Google Cloud Support more debugging visibility.
          &quot;type&quot;: &quot;A String&quot;, # The type of interconnect attachment this is, which can take one of the
              # following values:
              #
              #    - DEDICATED: an attachment to a Dedicated Interconnect.
              #    - PARTNER: an attachment to a Partner Interconnect, created by the
              #    customer.
              #    - PARTNER_PROVIDER: an attachment to a Partner Interconnect, created by
              #    the partner.
              #
              # - L2_DEDICATED: a L2 attachment to a Dedicated Interconnect.
          &quot;vlanTag8021q&quot;: 42, # The IEEE 802.1Q VLAN tag for this attachment, in the range 2-4093.
              # Only specified at creation time.
        },
      ],
      &quot;warning&quot;: { # Informational warning which replaces the list of addresses when
          # the list is empty.
        &quot;code&quot;: &quot;A String&quot;, # [Output Only] A warning code, if applicable. For example, Compute
            # Engine returns NO_RESULTS_ON_PAGE if there
            # are no results in the response.
        &quot;data&quot;: [ # [Output Only] Metadata about this warning in key:
            # value format. For example:
            #
            # &quot;data&quot;: [
            #   {
            #    &quot;key&quot;: &quot;scope&quot;,
            #    &quot;value&quot;: &quot;zones/us-east1-d&quot;
            #   }
          {
            &quot;key&quot;: &quot;A String&quot;, # [Output Only] A key that provides more detail on the warning being
                # returned. For example, for warnings where there are no results in a list
                # request for a particular zone, this key might be scope and
                # the key value might be the zone name. Other examples might be a key
                # indicating a deprecated resource and a suggested replacement, or a
                # warning about invalid network settings (for example, if an instance
                # attempts to perform IP forwarding but is not enabled for IP forwarding).
            &quot;value&quot;: &quot;A String&quot;, # [Output Only] A warning data value corresponding to the key.
          },
        ],
        &quot;message&quot;: &quot;A String&quot;, # [Output Only] A human-readable description of the warning code.
      },
    },
  },
  &quot;kind&quot;: &quot;compute#interconnectAttachmentAggregatedList&quot;, # [Output Only] Type of resource. Alwayscompute#interconnectAttachmentAggregatedList for aggregated
      # lists of interconnect attachments.
  &quot;nextPageToken&quot;: &quot;A String&quot;, # [Output Only] This token allows you to get the next page of results for
      # list requests. If the number of results is larger thanmaxResults, use the nextPageToken as a value for
      # the query parameter pageToken in the next list request.
      # Subsequent list requests will have their own nextPageToken to
      # continue paging through the results.
  &quot;selfLink&quot;: &quot;A String&quot;, # [Output Only] Server-defined URL for this resource.
  &quot;unreachables&quot;: [ # [Output Only] Unreachable resources.
    &quot;A String&quot;,
  ],
  &quot;warning&quot;: { # [Output Only] Informational warning message.
    &quot;code&quot;: &quot;A String&quot;, # [Output Only] A warning code, if applicable. For example, Compute
        # Engine returns NO_RESULTS_ON_PAGE if there
        # are no results in the response.
    &quot;data&quot;: [ # [Output Only] Metadata about this warning in key:
        # value format. For example:
        #
        # &quot;data&quot;: [
        #   {
        #    &quot;key&quot;: &quot;scope&quot;,
        #    &quot;value&quot;: &quot;zones/us-east1-d&quot;
        #   }
      {
        &quot;key&quot;: &quot;A String&quot;, # [Output Only] A key that provides more detail on the warning being
            # returned. For example, for warnings where there are no results in a list
            # request for a particular zone, this key might be scope and
            # the key value might be the zone name. Other examples might be a key
            # indicating a deprecated resource and a suggested replacement, or a
            # warning about invalid network settings (for example, if an instance
            # attempts to perform IP forwarding but is not enabled for IP forwarding).
        &quot;value&quot;: &quot;A String&quot;, # [Output Only] A warning data value corresponding to the key.
      },
    ],
    &quot;message&quot;: &quot;A String&quot;, # [Output Only] A human-readable description of the warning code.
  },
}</pre>
</div>

<div class="method">
    <code class="details" id="aggregatedList_next">aggregatedList_next()</code>
  <pre>Retrieves the next page of results.

        Args:
          previous_request: The request for the previous page. (required)
          previous_response: The response from the request for the previous page. (required)

        Returns:
          A request object that you can call &#x27;execute()&#x27; on to request the next
          page. Returns None if there are no more items in the collection.
        </pre>
</div>

<div class="method">
    <code class="details" id="close">close()</code>
  <pre>Close httplib2 connections.</pre>
</div>

<div class="method">
    <code class="details" id="delete">delete(project, region, interconnectAttachment, requestId=None, x__xgafv=None)</code>
  <pre>Deletes the specified interconnect attachment.

Args:
  project: string, Project ID for this request. (required)
  region: string, Name of the region for this request. (required)
  interconnectAttachment: string, Name of the interconnect attachment to delete. (required)
  requestId: string, An optional request ID to identify requests. Specify a unique request ID so
that if you must retry your request, the server will know to ignore the
request if it has already been completed.

For example, consider a situation where you make an initial request and
the request times out. If you make the request again with the same
request ID, the server can check if original operation with the same
request ID was received, and if so, will ignore the second request. This
prevents clients from accidentally creating duplicate commitments.

The request ID must be
a valid UUID with the exception that zero UUID is not supported
(00000000-0000-0000-0000-000000000000).
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # Represents an Operation resource.
    #
    # Google Compute Engine has three Operation resources:
    #
    # * [Global](/compute/docs/reference/rest/beta/globalOperations)
    # * [Regional](/compute/docs/reference/rest/beta/regionOperations)
    # * [Zonal](/compute/docs/reference/rest/beta/zoneOperations)
    #
    # You can use an operation resource to manage asynchronous API requests.
    # For more information, readHandling
    # API responses.
    #
    # Operations can be global, regional or zonal.
    #
    #    - For global operations, use the `globalOperations`
    #    resource.
    #    - For regional operations, use the
    #    `regionOperations` resource.
    #    - For zonal operations, use
    #    the `zoneOperations` resource.
    #
    #
    #
    # For more information, read
    # Global, Regional, and Zonal Resources.
    #
    # Note that completed Operation resources have a limited
    # retention period.
  &quot;clientOperationId&quot;: &quot;A String&quot;, # [Output Only] The value of `requestId` if you provided it in the request.
      # Not present otherwise.
  &quot;creationTimestamp&quot;: &quot;A String&quot;, # [Deprecated] This field is deprecated.
  &quot;description&quot;: &quot;A String&quot;, # [Output Only] A textual description of the operation, which is
      # set when the operation is created.
  &quot;endTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was completed. This value is inRFC3339
      # text format.
  &quot;error&quot;: { # [Output Only] If errors are generated during processing of the operation,
      # this field will be populated.
    &quot;errors&quot;: [ # [Output Only] The array of errors encountered while processing this
        # operation.
      {
        &quot;code&quot;: &quot;A String&quot;, # [Output Only] The error type identifier for this error.
        &quot;errorDetails&quot;: [ # [Output Only] An optional list of messages that contain the error
            # details. There is a set of defined message types to use for providing
            # details.The syntax depends on the error code. For example,
            # QuotaExceededInfo will have details when the error code is
            # QUOTA_EXCEEDED.
          {
            &quot;errorInfo&quot;: { # Describes the cause of the error with structured details.
                #
                # Example of an error when contacting the &quot;pubsub.googleapis.com&quot; API when it
                # is not enabled:
                #
                #     { &quot;reason&quot;: &quot;API_DISABLED&quot;
                #       &quot;domain&quot;: &quot;googleapis.com&quot;
                #       &quot;metadata&quot;: {
                #         &quot;resource&quot;: &quot;projects/123&quot;,
                #         &quot;service&quot;: &quot;pubsub.googleapis.com&quot;
                #       }
                #     }
                #
                # This response indicates that the pubsub.googleapis.com API is not enabled.
                #
                # Example of an error that is returned when attempting to create a Spanner
                # instance in a region that is out of stock:
                #
                #     { &quot;reason&quot;: &quot;STOCKOUT&quot;
                #       &quot;domain&quot;: &quot;spanner.googleapis.com&quot;,
                #       &quot;metadata&quot;: {
                #         &quot;availableRegions&quot;: &quot;us-central1,us-east2&quot;
                #       }
                #     }
              &quot;domain&quot;: &quot;A String&quot;, # The logical grouping to which the &quot;reason&quot; belongs. The error domain
                  # is typically the registered service name of the tool or product that
                  # generates the error. Example: &quot;pubsub.googleapis.com&quot;. If the error is
                  # generated by some common infrastructure, the error domain must be a
                  # globally unique value that identifies the infrastructure. For Google API
                  # infrastructure, the error domain is &quot;googleapis.com&quot;.
              &quot;metadatas&quot;: { # Additional structured details about this error.
                  #
                  # Keys must match a regular expression of `a-z+` but should
                  # ideally be lowerCamelCase. Also, they must be limited to 64 characters in
                  # length. When identifying the current value of an exceeded limit, the units
                  # should be contained in the key, not the value.  For example, rather than
                  # `{&quot;instanceLimit&quot;: &quot;100/request&quot;}`, should be returned as,
                  # `{&quot;instanceLimitPerRequest&quot;: &quot;100&quot;}`, if the client exceeds the number of
                  # instances that can be created in a single (batch) request.
                &quot;a_key&quot;: &quot;A String&quot;,
              },
              &quot;reason&quot;: &quot;A String&quot;, # The reason of the error. This is a constant value that identifies the
                  # proximate cause of the error. Error reasons are unique within a particular
                  # domain of errors. This should be at most 63 characters and match a
                  # regular expression of `A-Z+[A-Z0-9]`, which represents
                  # UPPER_SNAKE_CASE.
            },
            &quot;help&quot;: { # Provides links to documentation or for performing an out of band action.
                #
                # For example, if a quota check failed with an error indicating the calling
                # project hasn&#x27;t enabled the accessed service, this can contain a URL pointing
                # directly to the right place in the developer console to flip the bit.
              &quot;links&quot;: [ # URL(s) pointing to additional information on handling the current error.
                { # Describes a URL link.
                  &quot;description&quot;: &quot;A String&quot;, # Describes what the link offers.
                  &quot;url&quot;: &quot;A String&quot;, # The URL of the link.
                },
              ],
            },
            &quot;localizedMessage&quot;: { # Provides a localized error message that is safe to return to the user
                # which can be attached to an RPC error.
              &quot;locale&quot;: &quot;A String&quot;, # The locale used following the specification defined at
                  # https://www.rfc-editor.org/rfc/bcp/bcp47.txt.
                  # Examples are: &quot;en-US&quot;, &quot;fr-CH&quot;, &quot;es-MX&quot;
              &quot;message&quot;: &quot;A String&quot;, # The localized error message in the above locale.
            },
            &quot;quotaInfo&quot;: { # Additional details for quota exceeded error for resource quota.
              &quot;dimensions&quot;: { # The map holding related quota dimensions.
                &quot;a_key&quot;: &quot;A String&quot;,
              },
              &quot;futureLimit&quot;: 3.14, # Future quota limit being rolled out. The limit&#x27;s unit depends on the quota
                  #  type or metric.
              &quot;limit&quot;: 3.14, # Current effective quota limit. The limit&#x27;s unit depends on the quota type
                  # or metric.
              &quot;limitName&quot;: &quot;A String&quot;, # The name of the quota limit.
              &quot;metricName&quot;: &quot;A String&quot;, # The Compute Engine quota metric name.
              &quot;rolloutStatus&quot;: &quot;A String&quot;, # Rollout status of the future quota limit.
            },
          },
        ],
        &quot;location&quot;: &quot;A String&quot;, # [Output Only] Indicates the field in the request that caused the error.
            # This property is optional.
        &quot;message&quot;: &quot;A String&quot;, # [Output Only] An optional, human-readable error message.
      },
    ],
  },
  &quot;httpErrorMessage&quot;: &quot;A String&quot;, # [Output Only] If the operation fails, this field contains the HTTP error
      # message that was returned, such as `NOT FOUND`.
  &quot;httpErrorStatusCode&quot;: 42, # [Output Only] If the operation fails, this field contains the HTTP error
      # status code that was returned. For example, a `404` means the
      # resource was not found.
  &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is
      # defined by the server.
  &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested.
      # This value is inRFC3339
      # text format.
  &quot;instancesBulkInsertOperationMetadata&quot;: {
    &quot;perLocationStatus&quot;: { # Status information per location (location name is key).
        # Example key: zones/us-central1-a
      &quot;a_key&quot;: {
        &quot;createdVmCount&quot;: 42, # [Output Only] Count of VMs successfully created so far.
        &quot;deletedVmCount&quot;: 42, # [Output Only] Count of VMs that got deleted during rollback.
        &quot;failedToCreateVmCount&quot;: 42, # [Output Only] Count of VMs that started creating but encountered an
            # error.
        &quot;status&quot;: &quot;A String&quot;, # [Output Only] Creation status of BulkInsert operation - information
            # if the flow is rolling forward or rolling back.
        &quot;targetVmCount&quot;: 42, # [Output Only] Count of VMs originally planned to be created.
      },
    },
  },
  &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for
      # Operation resources.
  &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
  &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a
      # group of operations results from a `bulkInsert` API request.
  &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`,
      # `update`, or `delete`, and so on.
  &quot;progress&quot;: 42, # [Output Only] An optional progress indicator that ranges from 0 to 100.
      # There is no requirement that this be linear or support any granularity of
      # operations. This should not be used to guess when the operation will be
      # complete. This number should monotonically increase as the operation
      # progresses.
  &quot;region&quot;: &quot;A String&quot;, # [Output Only] The URL of the region where the operation resides. Only
      # applicable when performing regional operations.
  &quot;selfLink&quot;: &quot;A String&quot;, # [Output Only] Server-defined URL for the resource.
  &quot;setCommonInstanceMetadataOperationMetadata&quot;: { # [Output Only] If the operation is for projects.setCommonInstanceMetadata,
      # this field will contain information on all underlying zonal actions and
      # their state.
    &quot;clientOperationId&quot;: &quot;A String&quot;, # [Output Only] The client operation id.
    &quot;perLocationOperations&quot;: { # [Output Only] Status information per location (location name is key).
        # Example key: zones/us-central1-a
      &quot;a_key&quot;: {
        &quot;error&quot;: { # The `Status` type defines a logical error model that is suitable for # [Output Only] If state is `ABANDONED` or `FAILED`, this field is
            # populated.
            # different programming environments, including REST APIs and RPC APIs. It is
            # used by [gRPC](https://github.com/grpc). Each `Status` message contains
            # three pieces of data: error code, error message, and error details.
            #
            # You can find out more about this error model and how to work with it in the
            # [API Design Guide](https://cloud.google.com/apis/design/errors).
          &quot;code&quot;: 42, # The status code, which should be an enum value of google.rpc.Code.
          &quot;details&quot;: [ # A list of messages that carry the error details.  There is a common set of
              # message types for APIs to use.
            {
              &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
            },
          ],
          &quot;message&quot;: &quot;A String&quot;, # A developer-facing error message, which should be in English. Any
              # user-facing error message should be localized and sent in the
              # google.rpc.Status.details field, or localized by the client.
        },
        &quot;state&quot;: &quot;A String&quot;, # [Output Only] Status of the action, which can be one of the following:
            # `PROPAGATING`, `PROPAGATED`, `ABANDONED`, `FAILED`, or `DONE`.
      },
    },
  },
  &quot;startTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was started by the server.
      # This value is inRFC3339
      # text format.
  &quot;status&quot;: &quot;A String&quot;, # [Output Only] The status of the operation, which can be one of the
      # following:
      # `PENDING`, `RUNNING`, or `DONE`.
  &quot;statusMessage&quot;: &quot;A String&quot;, # [Output Only] An optional textual description of the current status of the
      # operation.
  &quot;targetId&quot;: &quot;A String&quot;, # [Output Only] The unique target ID, which identifies a specific incarnation
      # of the target resource.
  &quot;targetLink&quot;: &quot;A String&quot;, # [Output Only] The URL of the resource that the operation modifies. For
      # operations related to creating a snapshot, this points to the disk
      # that the snapshot was created from.
  &quot;user&quot;: &quot;A String&quot;, # [Output Only] User who requested the operation, for example:
      # `user@example.com` or
      # `alice_smith_identifier (global/workforcePools/example-com-us-employees)`.
  &quot;warnings&quot;: [ # [Output Only] If warning messages are generated during processing of the
      # operation, this field will be populated.
    {
      &quot;code&quot;: &quot;A String&quot;, # [Output Only] A warning code, if applicable. For example, Compute
          # Engine returns NO_RESULTS_ON_PAGE if there
          # are no results in the response.
      &quot;data&quot;: [ # [Output Only] Metadata about this warning in key:
          # value format. For example:
          #
          # &quot;data&quot;: [
          #   {
          #    &quot;key&quot;: &quot;scope&quot;,
          #    &quot;value&quot;: &quot;zones/us-east1-d&quot;
          #   }
        {
          &quot;key&quot;: &quot;A String&quot;, # [Output Only] A key that provides more detail on the warning being
              # returned. For example, for warnings where there are no results in a list
              # request for a particular zone, this key might be scope and
              # the key value might be the zone name. Other examples might be a key
              # indicating a deprecated resource and a suggested replacement, or a
              # warning about invalid network settings (for example, if an instance
              # attempts to perform IP forwarding but is not enabled for IP forwarding).
          &quot;value&quot;: &quot;A String&quot;, # [Output Only] A warning data value corresponding to the key.
        },
      ],
      &quot;message&quot;: &quot;A String&quot;, # [Output Only] A human-readable description of the warning code.
    },
  ],
  &quot;zone&quot;: &quot;A String&quot;, # [Output Only] The URL of the zone where the operation resides. Only
      # applicable when performing per-zone operations.
}</pre>
</div>

<div class="method">
    <code class="details" id="get">get(project, region, interconnectAttachment, x__xgafv=None)</code>
  <pre>Returns the specified interconnect attachment.

Args:
  project: string, Project ID for this request. (required)
  region: string, Name of the region for this request. (required)
  interconnectAttachment: string, Name of the interconnect attachment to return. (required)
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # Represents an Interconnect Attachment (VLAN) resource.
    #
    # You can use Interconnect attachments (VLANS) to connect your Virtual Private
    # Cloud networks to your on-premises networks through an Interconnect.
    # For more information, read
    # Creating VLAN Attachments.
  &quot;adminEnabled&quot;: True or False, # Determines whether this Attachment will carry packets.
      # Not present for PARTNER_PROVIDER.
  &quot;attachmentGroup&quot;: &quot;A String&quot;, # [Output Only] URL of the AttachmentGroup that includes this Attachment.
  &quot;bandwidth&quot;: &quot;A String&quot;, # Provisioned bandwidth capacity for the interconnect attachment. For
      # attachments of type DEDICATED, the user can set the bandwidth.
      # For attachments of type PARTNER, the Google Partner that is operating
      # the interconnect must set the bandwidth.
      # Output only for PARTNER type, mutable for PARTNER_PROVIDER and DEDICATED,
      # and can take one of the following values:
      #
      #    - BPS_50M: 50 Mbit/s
      #    - BPS_100M: 100 Mbit/s
      #    - BPS_200M: 200 Mbit/s
      #    - BPS_300M: 300 Mbit/s
      #    - BPS_400M: 400 Mbit/s
      #    - BPS_500M: 500 Mbit/s
      #    - BPS_1G: 1 Gbit/s
      #    - BPS_2G: 2 Gbit/s
      #    - BPS_5G: 5 Gbit/s
      #    - BPS_10G: 10 Gbit/s
      #    - BPS_20G: 20 Gbit/s
      #    - BPS_50G: 50 Gbit/s
      #    - BPS_100G: 100 Gbit/s
  &quot;candidateCloudRouterIpAddress&quot;: &quot;A String&quot;, # Single IPv4 address + prefix length to be configured on the cloud router
      # interface for this interconnect attachment.
      #
      #    - Both candidate_cloud_router_ip_address and
      #    candidate_customer_router_ip_address fields must be set or both must be
      #    unset.
      #    - Prefix length of both candidate_cloud_router_ip_address and
      #    candidate_customer_router_ip_address must be the same.
      #    - Max prefix length is 31.
  &quot;candidateCloudRouterIpv6Address&quot;: &quot;A String&quot;, # Single IPv6 address + prefix length to be configured on the cloud router
      # interface for this interconnect attachment.
      #
      #    - Both candidate_cloud_router_ipv6_address and
      #    candidate_customer_router_ipv6_address fields must be set or both must be
      #    unset.
      #    - Prefix length of both candidate_cloud_router_ipv6_address and
      #    candidate_customer_router_ipv6_address must be the same.
      #    - Max prefix length is 126.
  &quot;candidateCustomerRouterIpAddress&quot;: &quot;A String&quot;, # Single IPv4 address + prefix length to be configured on the customer router
      # interface for this interconnect attachment.
  &quot;candidateCustomerRouterIpv6Address&quot;: &quot;A String&quot;, # Single IPv6 address + prefix length to be configured on the customer router
      # interface for this interconnect attachment.
  &quot;candidateIpv6Subnets&quot;: [ # This field is not available.
    &quot;A String&quot;,
  ],
  &quot;candidateSubnets&quot;: [ # Input only. Up to 16 candidate prefixes that can be used to restrict the allocation
      # of cloudRouterIpAddress and customerRouterIpAddress for this attachment.
      # All prefixes must be within link-local address space (169.254.0.0/16) and
      # must be /29 or shorter (/28, /27, etc). Google will attempt to select an
      # unused /29 from the supplied candidate prefix(es). The request will fail if
      # all possible /29s are in use on Google&#x27;s edge. If not supplied, Google will
      # randomly select an unused /29 from all of link-local space.
    &quot;A String&quot;,
  ],
  &quot;cloudRouterIpAddress&quot;: &quot;A String&quot;, # [Output Only] IPv4 address + prefix length to be configured on Cloud Router
      # Interface for this interconnect attachment.
  &quot;cloudRouterIpv6Address&quot;: &quot;A String&quot;, # [Output Only] IPv6 address + prefix length to be configured on Cloud
      # Router Interface for this interconnect attachment.
  &quot;cloudRouterIpv6InterfaceId&quot;: &quot;A String&quot;, # This field is not available.
  &quot;configurationConstraints&quot;: { # [Output Only] Constraints for this attachment, if any. The attachment does
      # not work if these constraints are not met.
    &quot;bgpMd5&quot;: &quot;A String&quot;, # [Output Only] Whether the attachment&#x27;s BGP session
        # requires/allows/disallows BGP MD5 authentication. This can take one of
        # the following values: MD5_OPTIONAL, MD5_REQUIRED, MD5_UNSUPPORTED.
        #
        # For example, a Cross-Cloud Interconnect connection to a remote cloud
        # provider that requires BGP MD5 authentication has the
        # interconnectRemoteLocation attachment_configuration_constraints.bgp_md5
        # field set to MD5_REQUIRED, and that property is propagated to the
        # attachment. Similarly, if BGP MD5 is MD5_UNSUPPORTED, an error is
        # returned if MD5 is requested.
    &quot;bgpPeerAsnRanges&quot;: [ # [Output Only] List of ASN ranges that the remote location is known to
        # support. Formatted as an array of inclusive ranges {min: min-value, max:
        # max-value}. For example, [{min: 123, max: 123}, {min: 64512, max: 65534}]
        # allows the peer ASN to be 123 or anything in the range 64512-65534.
        #
        # This field is only advisory. Although the API accepts other ranges, these
        # are the ranges that we recommend.
      {
        &quot;max&quot;: 42,
        &quot;min&quot;: 42,
      },
    ],
  },
  &quot;creationTimestamp&quot;: &quot;A String&quot;, # [Output Only] Creation timestamp inRFC3339
      # text format.
  &quot;customerRouterIpAddress&quot;: &quot;A String&quot;, # [Output Only] IPv4 address + prefix length to be configured on the customer
      # router subinterface for this interconnect attachment.
  &quot;customerRouterIpv6Address&quot;: &quot;A String&quot;, # [Output Only] IPv6 address + prefix length to be configured on the
      # customer router subinterface for this interconnect attachment.
  &quot;customerRouterIpv6InterfaceId&quot;: &quot;A String&quot;, # This field is not available.
  &quot;dataplaneVersion&quot;: 42, # [Output Only] Dataplane version for this InterconnectAttachment. This
      # field is only present for Dataplane version 2 and higher. Absence of this
      # field in the API output indicates that the Dataplane is version 1.
  &quot;description&quot;: &quot;A String&quot;, # An optional description of this resource.
  &quot;edgeAvailabilityDomain&quot;: &quot;A String&quot;, # Input only. Desired availability domain for the attachment. Only available for type
      # PARTNER, at creation time, and can take one of the following values:
      #
      #    - AVAILABILITY_DOMAIN_ANY
      #    - AVAILABILITY_DOMAIN_1
      #    - AVAILABILITY_DOMAIN_2
      #
      #
      # For improved reliability, customers should configure a pair of attachments,
      # one per availability domain. The selected availability domain will be
      # provided to the Partner via the pairing key, so that the provisioned
      # circuit will lie in the specified domain. If not specified, the value will
      # default to AVAILABILITY_DOMAIN_ANY.
  &quot;encryption&quot;: &quot;A String&quot;, # Indicates the user-supplied encryption option of this VLAN attachment
      # (interconnectAttachment). Can only be specified at attachment creation
      # for PARTNER or DEDICATED attachments.
      # Possible values are:
      #
      #    - NONE - This is the default value, which means that the
      #    VLAN attachment carries unencrypted traffic. VMs are able to send
      #    traffic to, or receive traffic from, such a VLAN attachment.
      #    - IPSEC - The VLAN attachment carries only encrypted
      #    traffic that is encrypted by an IPsec device, such as an HA VPN gateway or
      #    third-party IPsec VPN. VMs cannot directly send traffic to, or receive
      #    traffic from, such a VLAN attachment. To use *HA VPN over Cloud
      #    Interconnect*, the VLAN attachment must be created with this
      #    option.
  &quot;googleReferenceId&quot;: &quot;A String&quot;, # [Output Only] Google reference ID, to be used when raising support tickets
      # with Google or otherwise to debug backend connectivity issues.
      # [Deprecated] This field is not used.
  &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the resource. This identifier is
      # defined by the server.
  &quot;interconnect&quot;: &quot;A String&quot;, # URL of the underlying Interconnect object that this attachment&#x27;s traffic
      # will traverse through.
  &quot;ipsecInternalAddresses&quot;: [ # A list of URLs of addresses that have been reserved for the VLAN
      # attachment. Used only for the VLAN attachment that has the encryption
      # option as IPSEC. The addresses must be regional internal IP address ranges.
      # When creating an HA VPN gateway over the VLAN attachment, if the attachment
      # is configured to use a regional internal IP address, then the VPN gateway&#x27;s
      # IP address is allocated from the IP address range specified here. For
      # example, if the HA VPN gateway&#x27;s interface 0 is paired to this VLAN
      # attachment, then a regional internal IP address for the VPN gateway
      # interface 0 will be allocated from the IP address specified for this
      # VLAN attachment.
      # If this field is not specified when creating the VLAN attachment, then
      # later on when creating an HA VPN gateway on this VLAN attachment, the HA
      # VPN gateway&#x27;s IP address is allocated from the regional external IP address
      # pool.
    &quot;A String&quot;,
  ],
  &quot;kind&quot;: &quot;compute#interconnectAttachment&quot;, # [Output Only] Type of the resource. Alwayscompute#interconnectAttachment for interconnect attachments.
  &quot;l2Forwarding&quot;: { # L2 Interconnect Attachment related configuration. # L2 Interconnect Attachment related config. This field is required if the
      # type is L2_DEDICATED.
      #
      # The configuration specifies how VLAN tags (like dot1q, qinq, or dot1ad)
      # within L2 packets are mapped to the destination appliances IP addresses.
      # The packet is then encapsulated with the appliance IP address and sent to
      # the edge appliance.
    &quot;applianceMappings&quot;: { # Optional. A map of VLAN tags to appliances and optional inner mapping
        # rules. If VLANs are not explicitly mapped to any appliance, the
        # defaultApplianceIpAddress is used.
        #
        # Each VLAN tag can be a single number or a range of numbers in the range
        # of 1 to 4094, e.g., &quot;1&quot; or &quot;4001-4094&quot;. Non-empty and non-overlapping
        # VLAN tag ranges are enforced, and violating operations will be rejected.
        #
        # The VLAN tags in the Ethernet header must use an ethertype value of
        # 0x88A8 or 0x8100.
      &quot;a_key&quot;: { # Two-level VLAN-to-Appliance mapping rule.
        &quot;applianceIpAddress&quot;: &quot;A String&quot;, # Optional. A single IPv4 or IPv6 address used as the destination IP
            # address for ingress packets that match on a VLAN tag, but do not match
            # a more specific inner VLAN tag.
            #
            # Unset field (null-value) indicates both VLAN tags are required to be
            # mapped. Otherwise, defaultApplianceIpAddress is used.
        &quot;innerVlanToApplianceMappings&quot;: [ # Optional. Used to match against the inner VLAN when the packet
            # contains two VLAN tags.
            #
            # A list of mapping rules from inner VLAN tags to IP addresses. If the
            # inner VLAN is not explicitly mapped to an IP address range, the
            # applianceIpAddress is used.
          { # The inner VLAN-to-Appliance mapping.
            &quot;innerApplianceIpAddress&quot;: &quot;A String&quot;, # Required in this object. A single IPv4 or IPv6 address used as the
                # destination IP address for ingress packets that match on both VLAN
                # tags.
            &quot;innerVlanTags&quot;: [ # Required in this object. Used to match the inner VLAN tag on the
                # packet. Each entry can be a single number or a range of numbers in
                # the range of 1 to 4094, e.g., [&quot;1&quot;, &quot;4001-4094&quot;] is valid. Non-empty
                # and Non-overlapping VLAN tag ranges are enforced, and violating
                # operations will be rejected.
                #
                # The inner VLAN tags must have an ethertype value of 0x8100.
              &quot;A String&quot;,
            ],
          },
        ],
        &quot;name&quot;: &quot;A String&quot;, # Optional. The name of this appliance mapping rule.
      },
    },
    &quot;defaultApplianceIpAddress&quot;: &quot;A String&quot;, # Optional. A single IPv4 or IPv6 address used as the default destination
        # IP when there is no VLAN mapping result found.
        #
        # Unset field (null-value) indicates the unmatched packet should be
        # dropped.
    &quot;geneveHeader&quot;: { # GeneveHeader related configurations. # Optional. It represents the structure of a Geneve (Generic Network
        # Virtualization Encapsulation) header, as defined in RFC8926. It encapsulates packets from various
        # protocols (e.g., Ethernet, IPv4, IPv6) for use in network virtualization
        # environments.
      &quot;vni&quot;: 42, # Optional. VNI is a 24-bit unique virtual network identifier, from 0 to
          # 16,777,215.
    },
    &quot;network&quot;: &quot;A String&quot;, # Required. Resource URL of the network to which this attachment belongs.
    &quot;tunnelEndpointIpAddress&quot;: &quot;A String&quot;, # Required. A single IPv4 or IPv6 address. This address will be used as the
        # source IP address for packets sent to the appliances, and must be used as
        # the destination IP address for packets that should be sent out through
        # this attachment.
  },
  &quot;labelFingerprint&quot;: &quot;A String&quot;, # A fingerprint for the labels being applied to this InterconnectAttachment,
      # which is essentially a hash of the labels set used for optimistic locking.
      # The fingerprint is initially generated by Compute Engine and changes after
      # every request to modify or update labels. You must always provide an
      # up-to-date fingerprint hash in order to update or change labels,
      # otherwise the request will fail with error412 conditionNotMet.
      #
      # To see the latest fingerprint, make a get() request to
      # retrieve an InterconnectAttachment.
  &quot;labels&quot;: { # Labels for this resource. These can only be added or modified by thesetLabels method. Each label key/value pair must comply withRFC1035.
      # Label values may be empty.
    &quot;a_key&quot;: &quot;A String&quot;,
  },
  &quot;mtu&quot;: 42, # Maximum Transmission Unit (MTU), in bytes, of packets passing through this
      # interconnect attachment.
      # Valid values are 1440, 1460, 1500, and 8896. If not specified,
      # the value will default to 1440.
  &quot;name&quot;: &quot;A String&quot;, # Name of the resource. Provided by the client when the resource is created.
      # The name must be 1-63 characters long, and comply withRFC1035.
      # Specifically, the name must be 1-63 characters long and match the regular
      # expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first
      # character must be a lowercase letter, and all following characters must
      # be a dash, lowercase letter, or digit, except the last character, which
      # cannot be a dash.
  &quot;operationalStatus&quot;: &quot;A String&quot;, # [Output Only] The current status of whether or not this interconnect
      # attachment is functional, which can take one of the following values:
      #
      #    - OS_ACTIVE: The attachment has been turned up and is ready to
      #    use.
      #    - OS_UNPROVISIONED: The attachment is not ready to use yet,
      #    because turnup is not complete.
  &quot;pairingKey&quot;: &quot;A String&quot;, # [Output only for type PARTNER. Input only for PARTNER_PROVIDER. Not
      # present for DEDICATED].
      # The opaque identifier of a PARTNER attachment used to initiate
      # provisioning with a selected partner.
      # Of the form &quot;XXXXX/region/domain&quot;
  &quot;params&quot;: { # Additional interconnect attachment parameters. # Input only. [Input Only] Additional params passed with the request, but not persisted
      # as part of resource payload.
    &quot;resourceManagerTags&quot;: { # Tag keys/values directly bound to this resource.
        # Tag keys and values have the same definition as resource
        # manager tags. The field is allowed for INSERT
        # only. The keys/values to set on the resource should be specified in
        # either ID { : } or Namespaced format
        # { : }.
        # For example the following are valid inputs:
        # * {&quot;tagKeys/333&quot; : &quot;tagValues/444&quot;, &quot;tagKeys/123&quot; : &quot;tagValues/456&quot;}
        # * {&quot;123/environment&quot; : &quot;production&quot;, &quot;345/abc&quot; : &quot;xyz&quot;}
        # Note:
        # * Invalid combinations of ID &amp; namespaced format is not supported. For
        #   instance: {&quot;123/environment&quot; : &quot;tagValues/444&quot;} is invalid.
        # * Inconsistent format is not supported. For instance:
        #   {&quot;tagKeys/333&quot; : &quot;tagValues/444&quot;, &quot;123/env&quot; : &quot;prod&quot;} is invalid.
      &quot;a_key&quot;: &quot;A String&quot;,
    },
  },
  &quot;partnerAsn&quot;: &quot;A String&quot;, # Optional BGP ASN for the router supplied by a Layer 3 Partner if they
      # configured BGP on behalf of the customer.
      # Output only for PARTNER type, input only for PARTNER_PROVIDER, not
      # available for DEDICATED.
  &quot;partnerMetadata&quot;: { # Informational metadata about Partner attachments from Partners to display # Informational metadata about Partner attachments from Partners to display
      # to customers.
      # Output only for PARTNER type, mutable for PARTNER_PROVIDER, not
      # available for DEDICATED.
      # to customers.  These fields are propagated from PARTNER_PROVIDER
      # attachments to their corresponding PARTNER attachments.
    &quot;interconnectName&quot;: &quot;A String&quot;, # Plain text name of the Interconnect this attachment is connected to, as
        # displayed in the Partner&#x27;s portal. For instance &quot;Chicago 1&quot;.
        # This value may be validated to match approved Partner values.
    &quot;partnerName&quot;: &quot;A String&quot;, # Plain text name of the Partner providing this attachment.
        # This value may be validated to match approved Partner values.
    &quot;portalUrl&quot;: &quot;A String&quot;, # URL of the Partner&#x27;s portal for this Attachment. Partners may customise
        # this to be a deep link to the specific resource on the Partner portal.
        # This value may be validated to match approved Partner values.
  },
  &quot;privateInterconnectInfo&quot;: { # Information for an interconnect attachment when this belongs to an # [Output Only] Information specific to an InterconnectAttachment.
      # This property is populated if the interconnect that
      # this is attached to is of type DEDICATED.
      # interconnect of type DEDICATED.
    &quot;tag8021q&quot;: 42, # [Output Only] 802.1q encapsulation tag to be used for traffic between
        # Google and the customer, going to and from this network and region.
  },
  &quot;region&quot;: &quot;A String&quot;, # [Output Only] URL of the region where the regional interconnect attachment
      # resides.
      # You must specify this field as part of the HTTP request URL. It is
      # not settable as a field in the request body.
  &quot;remoteService&quot;: &quot;A String&quot;, # [Output Only]
      # If the attachment is on a Cross-Cloud Interconnect connection, this field
      # contains the interconnect&#x27;s remote location service provider. Example
      # values: &quot;Amazon Web Services&quot; &quot;Microsoft Azure&quot;.
      #
      # The field is set only for attachments on Cross-Cloud Interconnect
      # connections. Its value is copied from the InterconnectRemoteLocation
      # remoteService field.
  &quot;router&quot;: &quot;A String&quot;, # URL of the Cloud Router to be used for dynamic routing. This router must be
      # in the same region as this InterconnectAttachment. The
      # InterconnectAttachment will automatically connect the Interconnect to the
      # network &amp; region within which the Cloud Router is configured.
  &quot;satisfiesPzs&quot;: True or False, # [Output Only] Reserved for future use.
  &quot;selfLink&quot;: &quot;A String&quot;, # [Output Only] Server-defined URL for the resource.
  &quot;stackType&quot;: &quot;A String&quot;, # The stack type for this interconnect attachment to identify whether the
      # IPv6 feature is enabled or not. If not specified, IPV4_ONLY
      # will be used.
      #
      # This field can be both set at interconnect attachments creation and
      # update interconnect attachment operations.
  &quot;state&quot;: &quot;A String&quot;, # [Output Only] The current state of this attachment&#x27;s functionality.
      # Enum values ACTIVE and UNPROVISIONED are shared by DEDICATED/PRIVATE,
      # PARTNER, and PARTNER_PROVIDER interconnect attachments, while enum values
      # PENDING_PARTNER, PARTNER_REQUEST_RECEIVED, and PENDING_CUSTOMER are used
      # for only PARTNER and PARTNER_PROVIDER interconnect attachments.
      # This state can take one of the following values:
      #
      #    - ACTIVE: The attachment has been turned up and is ready to use.
      #    - UNPROVISIONED: The attachment is not ready to use yet, because turnup
      #    is not complete.
      #    - PENDING_PARTNER: A newly-created PARTNER attachment that has not yet
      #    been configured on the Partner side.
      #    - PARTNER_REQUEST_RECEIVED: A PARTNER attachment is in the process of
      #    provisioning after a PARTNER_PROVIDER attachment was created that
      #    references it.
      #    - PENDING_CUSTOMER: A PARTNER or PARTNER_PROVIDER
      #    attachment that is waiting for a customer to activate it.
      #    - DEFUNCT:
      #    The attachment was deleted externally and is no longer functional. This
      #    could be because the associated Interconnect was removed, or because the
      #    other side of a Partner attachment was deleted.
  &quot;subnetLength&quot;: 42, # Input only. Length of the IPv4 subnet mask.
      # Allowed values:
      #
      #
      #     - 29 (default)
      #     - 30
      #
      # The default value is 29, except for Cross-Cloud Interconnect
      # connections that use an InterconnectRemoteLocation with a
      # constraints.subnetLengthRange.min equal to 30. For example,
      # connections that use an Azure remote location fall into this
      # category. In these cases, the default value is 30, and requesting
      # 29 returns an error.
      #
      # Where both 29 and 30 are allowed, 29 is preferred, because it gives
      # Google Cloud Support more debugging visibility.
  &quot;type&quot;: &quot;A String&quot;, # The type of interconnect attachment this is, which can take one of the
      # following values:
      #
      #    - DEDICATED: an attachment to a Dedicated Interconnect.
      #    - PARTNER: an attachment to a Partner Interconnect, created by the
      #    customer.
      #    - PARTNER_PROVIDER: an attachment to a Partner Interconnect, created by
      #    the partner.
      #
      # - L2_DEDICATED: a L2 attachment to a Dedicated Interconnect.
  &quot;vlanTag8021q&quot;: 42, # The IEEE 802.1Q VLAN tag for this attachment, in the range 2-4093.
      # Only specified at creation time.
}</pre>
</div>

<div class="method">
    <code class="details" id="insert">insert(project, region, body=None, requestId=None, validateOnly=None, x__xgafv=None)</code>
  <pre>Creates an InterconnectAttachment in the specified project using the data
included in the request.

Args:
  project: string, Project ID for this request. (required)
  region: string, Name of the region for this request. (required)
  body: object, The request body.
    The object takes the form of:

{ # Represents an Interconnect Attachment (VLAN) resource.
    # 
    # You can use Interconnect attachments (VLANS) to connect your Virtual Private
    # Cloud networks to your on-premises networks through an Interconnect.
    # For more information, read
    # Creating VLAN Attachments.
  &quot;adminEnabled&quot;: True or False, # Determines whether this Attachment will carry packets.
      # Not present for PARTNER_PROVIDER.
  &quot;attachmentGroup&quot;: &quot;A String&quot;, # [Output Only] URL of the AttachmentGroup that includes this Attachment.
  &quot;bandwidth&quot;: &quot;A String&quot;, # Provisioned bandwidth capacity for the interconnect attachment. For
      # attachments of type DEDICATED, the user can set the bandwidth.
      # For attachments of type PARTNER, the Google Partner that is operating
      # the interconnect must set the bandwidth.
      # Output only for PARTNER type, mutable for PARTNER_PROVIDER and DEDICATED,
      # and can take one of the following values:
      # 
      #    - BPS_50M: 50 Mbit/s
      #    - BPS_100M: 100 Mbit/s
      #    - BPS_200M: 200 Mbit/s
      #    - BPS_300M: 300 Mbit/s
      #    - BPS_400M: 400 Mbit/s
      #    - BPS_500M: 500 Mbit/s
      #    - BPS_1G: 1 Gbit/s
      #    - BPS_2G: 2 Gbit/s
      #    - BPS_5G: 5 Gbit/s
      #    - BPS_10G: 10 Gbit/s
      #    - BPS_20G: 20 Gbit/s
      #    - BPS_50G: 50 Gbit/s
      #    - BPS_100G: 100 Gbit/s
  &quot;candidateCloudRouterIpAddress&quot;: &quot;A String&quot;, # Single IPv4 address + prefix length to be configured on the cloud router
      # interface for this interconnect attachment.
      # 
      #    - Both candidate_cloud_router_ip_address and
      #    candidate_customer_router_ip_address fields must be set or both must be
      #    unset.
      #    - Prefix length of both candidate_cloud_router_ip_address and
      #    candidate_customer_router_ip_address must be the same.
      #    - Max prefix length is 31.
  &quot;candidateCloudRouterIpv6Address&quot;: &quot;A String&quot;, # Single IPv6 address + prefix length to be configured on the cloud router
      # interface for this interconnect attachment.
      # 
      #    - Both candidate_cloud_router_ipv6_address and
      #    candidate_customer_router_ipv6_address fields must be set or both must be
      #    unset.
      #    - Prefix length of both candidate_cloud_router_ipv6_address and
      #    candidate_customer_router_ipv6_address must be the same.
      #    - Max prefix length is 126.
  &quot;candidateCustomerRouterIpAddress&quot;: &quot;A String&quot;, # Single IPv4 address + prefix length to be configured on the customer router
      # interface for this interconnect attachment.
  &quot;candidateCustomerRouterIpv6Address&quot;: &quot;A String&quot;, # Single IPv6 address + prefix length to be configured on the customer router
      # interface for this interconnect attachment.
  &quot;candidateIpv6Subnets&quot;: [ # This field is not available.
    &quot;A String&quot;,
  ],
  &quot;candidateSubnets&quot;: [ # Input only. Up to 16 candidate prefixes that can be used to restrict the allocation
      # of cloudRouterIpAddress and customerRouterIpAddress for this attachment.
      # All prefixes must be within link-local address space (169.254.0.0/16) and
      # must be /29 or shorter (/28, /27, etc). Google will attempt to select an
      # unused /29 from the supplied candidate prefix(es). The request will fail if
      # all possible /29s are in use on Google&#x27;s edge. If not supplied, Google will
      # randomly select an unused /29 from all of link-local space.
    &quot;A String&quot;,
  ],
  &quot;cloudRouterIpAddress&quot;: &quot;A String&quot;, # [Output Only] IPv4 address + prefix length to be configured on Cloud Router
      # Interface for this interconnect attachment.
  &quot;cloudRouterIpv6Address&quot;: &quot;A String&quot;, # [Output Only] IPv6 address + prefix length to be configured on Cloud
      # Router Interface for this interconnect attachment.
  &quot;cloudRouterIpv6InterfaceId&quot;: &quot;A String&quot;, # This field is not available.
  &quot;configurationConstraints&quot;: { # [Output Only] Constraints for this attachment, if any. The attachment does
      # not work if these constraints are not met.
    &quot;bgpMd5&quot;: &quot;A String&quot;, # [Output Only] Whether the attachment&#x27;s BGP session
        # requires/allows/disallows BGP MD5 authentication. This can take one of
        # the following values: MD5_OPTIONAL, MD5_REQUIRED, MD5_UNSUPPORTED.
        #
        # For example, a Cross-Cloud Interconnect connection to a remote cloud
        # provider that requires BGP MD5 authentication has the
        # interconnectRemoteLocation attachment_configuration_constraints.bgp_md5
        # field set to MD5_REQUIRED, and that property is propagated to the
        # attachment. Similarly, if BGP MD5 is MD5_UNSUPPORTED, an error is
        # returned if MD5 is requested.
    &quot;bgpPeerAsnRanges&quot;: [ # [Output Only] List of ASN ranges that the remote location is known to
        # support. Formatted as an array of inclusive ranges {min: min-value, max:
        # max-value}. For example, [{min: 123, max: 123}, {min: 64512, max: 65534}]
        # allows the peer ASN to be 123 or anything in the range 64512-65534.
        #
        # This field is only advisory. Although the API accepts other ranges, these
        # are the ranges that we recommend.
      {
        &quot;max&quot;: 42,
        &quot;min&quot;: 42,
      },
    ],
  },
  &quot;creationTimestamp&quot;: &quot;A String&quot;, # [Output Only] Creation timestamp inRFC3339
      # text format.
  &quot;customerRouterIpAddress&quot;: &quot;A String&quot;, # [Output Only] IPv4 address + prefix length to be configured on the customer
      # router subinterface for this interconnect attachment.
  &quot;customerRouterIpv6Address&quot;: &quot;A String&quot;, # [Output Only] IPv6 address + prefix length to be configured on the
      # customer router subinterface for this interconnect attachment.
  &quot;customerRouterIpv6InterfaceId&quot;: &quot;A String&quot;, # This field is not available.
  &quot;dataplaneVersion&quot;: 42, # [Output Only] Dataplane version for this InterconnectAttachment. This
      # field is only present for Dataplane version 2 and higher. Absence of this
      # field in the API output indicates that the Dataplane is version 1.
  &quot;description&quot;: &quot;A String&quot;, # An optional description of this resource.
  &quot;edgeAvailabilityDomain&quot;: &quot;A String&quot;, # Input only. Desired availability domain for the attachment. Only available for type
      # PARTNER, at creation time, and can take one of the following values:
      # 
      #    - AVAILABILITY_DOMAIN_ANY
      #    - AVAILABILITY_DOMAIN_1
      #    - AVAILABILITY_DOMAIN_2
      # 
      # 
      # For improved reliability, customers should configure a pair of attachments,
      # one per availability domain. The selected availability domain will be
      # provided to the Partner via the pairing key, so that the provisioned
      # circuit will lie in the specified domain. If not specified, the value will
      # default to AVAILABILITY_DOMAIN_ANY.
  &quot;encryption&quot;: &quot;A String&quot;, # Indicates the user-supplied encryption option of this VLAN attachment
      # (interconnectAttachment). Can only be specified at attachment creation
      # for PARTNER or DEDICATED attachments.
      # Possible values are:
      # 
      #    - NONE - This is the default value, which means that the
      #    VLAN attachment carries unencrypted traffic. VMs are able to send
      #    traffic to, or receive traffic from, such a VLAN attachment.
      #    - IPSEC - The VLAN attachment carries only encrypted
      #    traffic that is encrypted by an IPsec device, such as an HA VPN gateway or
      #    third-party IPsec VPN. VMs cannot directly send traffic to, or receive
      #    traffic from, such a VLAN attachment. To use *HA VPN over Cloud
      #    Interconnect*, the VLAN attachment must be created with this
      #    option.
  &quot;googleReferenceId&quot;: &quot;A String&quot;, # [Output Only] Google reference ID, to be used when raising support tickets
      # with Google or otherwise to debug backend connectivity issues.
      # [Deprecated] This field is not used.
  &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the resource. This identifier is
      # defined by the server.
  &quot;interconnect&quot;: &quot;A String&quot;, # URL of the underlying Interconnect object that this attachment&#x27;s traffic
      # will traverse through.
  &quot;ipsecInternalAddresses&quot;: [ # A list of URLs of addresses that have been reserved for the VLAN
      # attachment. Used only for the VLAN attachment that has the encryption
      # option as IPSEC. The addresses must be regional internal IP address ranges.
      # When creating an HA VPN gateway over the VLAN attachment, if the attachment
      # is configured to use a regional internal IP address, then the VPN gateway&#x27;s
      # IP address is allocated from the IP address range specified here. For
      # example, if the HA VPN gateway&#x27;s interface 0 is paired to this VLAN
      # attachment, then a regional internal IP address for the VPN gateway
      # interface 0 will be allocated from the IP address specified for this
      # VLAN attachment.
      # If this field is not specified when creating the VLAN attachment, then
      # later on when creating an HA VPN gateway on this VLAN attachment, the HA
      # VPN gateway&#x27;s IP address is allocated from the regional external IP address
      # pool.
    &quot;A String&quot;,
  ],
  &quot;kind&quot;: &quot;compute#interconnectAttachment&quot;, # [Output Only] Type of the resource. Alwayscompute#interconnectAttachment for interconnect attachments.
  &quot;l2Forwarding&quot;: { # L2 Interconnect Attachment related configuration. # L2 Interconnect Attachment related config. This field is required if the
      # type is L2_DEDICATED.
      # 
      # The configuration specifies how VLAN tags (like dot1q, qinq, or dot1ad)
      # within L2 packets are mapped to the destination appliances IP addresses.
      # The packet is then encapsulated with the appliance IP address and sent to
      # the edge appliance.
    &quot;applianceMappings&quot;: { # Optional. A map of VLAN tags to appliances and optional inner mapping
        # rules. If VLANs are not explicitly mapped to any appliance, the
        # defaultApplianceIpAddress is used.
        #
        # Each VLAN tag can be a single number or a range of numbers in the range
        # of 1 to 4094, e.g., &quot;1&quot; or &quot;4001-4094&quot;. Non-empty and non-overlapping
        # VLAN tag ranges are enforced, and violating operations will be rejected.
        #
        # The VLAN tags in the Ethernet header must use an ethertype value of
        # 0x88A8 or 0x8100.
      &quot;a_key&quot;: { # Two-level VLAN-to-Appliance mapping rule.
        &quot;applianceIpAddress&quot;: &quot;A String&quot;, # Optional. A single IPv4 or IPv6 address used as the destination IP
            # address for ingress packets that match on a VLAN tag, but do not match
            # a more specific inner VLAN tag.
            #
            # Unset field (null-value) indicates both VLAN tags are required to be
            # mapped. Otherwise, defaultApplianceIpAddress is used.
        &quot;innerVlanToApplianceMappings&quot;: [ # Optional. Used to match against the inner VLAN when the packet
            # contains two VLAN tags.
            #
            # A list of mapping rules from inner VLAN tags to IP addresses. If the
            # inner VLAN is not explicitly mapped to an IP address range, the
            # applianceIpAddress is used.
          { # The inner VLAN-to-Appliance mapping.
            &quot;innerApplianceIpAddress&quot;: &quot;A String&quot;, # Required in this object. A single IPv4 or IPv6 address used as the
                # destination IP address for ingress packets that match on both VLAN
                # tags.
            &quot;innerVlanTags&quot;: [ # Required in this object. Used to match the inner VLAN tag on the
                # packet. Each entry can be a single number or a range of numbers in
                # the range of 1 to 4094, e.g., [&quot;1&quot;, &quot;4001-4094&quot;] is valid. Non-empty
                # and Non-overlapping VLAN tag ranges are enforced, and violating
                # operations will be rejected.
                #
                # The inner VLAN tags must have an ethertype value of 0x8100.
              &quot;A String&quot;,
            ],
          },
        ],
        &quot;name&quot;: &quot;A String&quot;, # Optional. The name of this appliance mapping rule.
      },
    },
    &quot;defaultApplianceIpAddress&quot;: &quot;A String&quot;, # Optional. A single IPv4 or IPv6 address used as the default destination
        # IP when there is no VLAN mapping result found.
        #
        # Unset field (null-value) indicates the unmatched packet should be
        # dropped.
    &quot;geneveHeader&quot;: { # GeneveHeader related configurations. # Optional. It represents the structure of a Geneve (Generic Network
        # Virtualization Encapsulation) header, as defined in RFC8926. It encapsulates packets from various
        # protocols (e.g., Ethernet, IPv4, IPv6) for use in network virtualization
        # environments.
      &quot;vni&quot;: 42, # Optional. VNI is a 24-bit unique virtual network identifier, from 0 to
          # 16,777,215.
    },
    &quot;network&quot;: &quot;A String&quot;, # Required. Resource URL of the network to which this attachment belongs.
    &quot;tunnelEndpointIpAddress&quot;: &quot;A String&quot;, # Required. A single IPv4 or IPv6 address. This address will be used as the
        # source IP address for packets sent to the appliances, and must be used as
        # the destination IP address for packets that should be sent out through
        # this attachment.
  },
  &quot;labelFingerprint&quot;: &quot;A String&quot;, # A fingerprint for the labels being applied to this InterconnectAttachment,
      # which is essentially a hash of the labels set used for optimistic locking.
      # The fingerprint is initially generated by Compute Engine and changes after
      # every request to modify or update labels. You must always provide an
      # up-to-date fingerprint hash in order to update or change labels,
      # otherwise the request will fail with error412 conditionNotMet.
      # 
      # To see the latest fingerprint, make a get() request to
      # retrieve an InterconnectAttachment.
  &quot;labels&quot;: { # Labels for this resource. These can only be added or modified by thesetLabels method. Each label key/value pair must comply withRFC1035.
      # Label values may be empty.
    &quot;a_key&quot;: &quot;A String&quot;,
  },
  &quot;mtu&quot;: 42, # Maximum Transmission Unit (MTU), in bytes, of packets passing through this
      # interconnect attachment.
      # Valid values are 1440, 1460, 1500, and 8896. If not specified,
      # the value will default to 1440.
  &quot;name&quot;: &quot;A String&quot;, # Name of the resource. Provided by the client when the resource is created.
      # The name must be 1-63 characters long, and comply withRFC1035.
      # Specifically, the name must be 1-63 characters long and match the regular
      # expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first
      # character must be a lowercase letter, and all following characters must
      # be a dash, lowercase letter, or digit, except the last character, which
      # cannot be a dash.
  &quot;operationalStatus&quot;: &quot;A String&quot;, # [Output Only] The current status of whether or not this interconnect
      # attachment is functional, which can take one of the following values:
      # 
      #    - OS_ACTIVE: The attachment has been turned up and is ready to
      #    use.
      #    - OS_UNPROVISIONED: The attachment is not ready to use yet,
      #    because turnup is not complete.
  &quot;pairingKey&quot;: &quot;A String&quot;, # [Output only for type PARTNER. Input only for PARTNER_PROVIDER. Not
      # present for DEDICATED].
      # The opaque identifier of a PARTNER attachment used to initiate
      # provisioning with a selected partner.
      # Of the form &quot;XXXXX/region/domain&quot;
  &quot;params&quot;: { # Additional interconnect attachment parameters. # Input only. [Input Only] Additional params passed with the request, but not persisted
      # as part of resource payload.
    &quot;resourceManagerTags&quot;: { # Tag keys/values directly bound to this resource.
        # Tag keys and values have the same definition as resource
        # manager tags. The field is allowed for INSERT
        # only. The keys/values to set on the resource should be specified in
        # either ID { : } or Namespaced format
        # { : }.
        # For example the following are valid inputs:
        # * {&quot;tagKeys/333&quot; : &quot;tagValues/444&quot;, &quot;tagKeys/123&quot; : &quot;tagValues/456&quot;}
        # * {&quot;123/environment&quot; : &quot;production&quot;, &quot;345/abc&quot; : &quot;xyz&quot;}
        # Note:
        # * Invalid combinations of ID &amp; namespaced format is not supported. For
        #   instance: {&quot;123/environment&quot; : &quot;tagValues/444&quot;} is invalid.
        # * Inconsistent format is not supported. For instance:
        #   {&quot;tagKeys/333&quot; : &quot;tagValues/444&quot;, &quot;123/env&quot; : &quot;prod&quot;} is invalid.
      &quot;a_key&quot;: &quot;A String&quot;,
    },
  },
  &quot;partnerAsn&quot;: &quot;A String&quot;, # Optional BGP ASN for the router supplied by a Layer 3 Partner if they
      # configured BGP on behalf of the customer.
      # Output only for PARTNER type, input only for PARTNER_PROVIDER, not
      # available for DEDICATED.
  &quot;partnerMetadata&quot;: { # Informational metadata about Partner attachments from Partners to display # Informational metadata about Partner attachments from Partners to display
      # to customers.
      # Output only for PARTNER type, mutable for PARTNER_PROVIDER, not
      # available for DEDICATED.
      # to customers.  These fields are propagated from PARTNER_PROVIDER
      # attachments to their corresponding PARTNER attachments.
    &quot;interconnectName&quot;: &quot;A String&quot;, # Plain text name of the Interconnect this attachment is connected to, as
        # displayed in the Partner&#x27;s portal. For instance &quot;Chicago 1&quot;.
        # This value may be validated to match approved Partner values.
    &quot;partnerName&quot;: &quot;A String&quot;, # Plain text name of the Partner providing this attachment.
        # This value may be validated to match approved Partner values.
    &quot;portalUrl&quot;: &quot;A String&quot;, # URL of the Partner&#x27;s portal for this Attachment. Partners may customise
        # this to be a deep link to the specific resource on the Partner portal.
        # This value may be validated to match approved Partner values.
  },
  &quot;privateInterconnectInfo&quot;: { # Information for an interconnect attachment when this belongs to an # [Output Only] Information specific to an InterconnectAttachment.
      # This property is populated if the interconnect that
      # this is attached to is of type DEDICATED.
      # interconnect of type DEDICATED.
    &quot;tag8021q&quot;: 42, # [Output Only] 802.1q encapsulation tag to be used for traffic between
        # Google and the customer, going to and from this network and region.
  },
  &quot;region&quot;: &quot;A String&quot;, # [Output Only] URL of the region where the regional interconnect attachment
      # resides.
      # You must specify this field as part of the HTTP request URL. It is
      # not settable as a field in the request body.
  &quot;remoteService&quot;: &quot;A String&quot;, # [Output Only]
      # If the attachment is on a Cross-Cloud Interconnect connection, this field
      # contains the interconnect&#x27;s remote location service provider. Example
      # values: &quot;Amazon Web Services&quot; &quot;Microsoft Azure&quot;.
      # 
      # The field is set only for attachments on Cross-Cloud Interconnect
      # connections. Its value is copied from the InterconnectRemoteLocation
      # remoteService field.
  &quot;router&quot;: &quot;A String&quot;, # URL of the Cloud Router to be used for dynamic routing. This router must be
      # in the same region as this InterconnectAttachment. The
      # InterconnectAttachment will automatically connect the Interconnect to the
      # network &amp; region within which the Cloud Router is configured.
  &quot;satisfiesPzs&quot;: True or False, # [Output Only] Reserved for future use.
  &quot;selfLink&quot;: &quot;A String&quot;, # [Output Only] Server-defined URL for the resource.
  &quot;stackType&quot;: &quot;A String&quot;, # The stack type for this interconnect attachment to identify whether the
      # IPv6 feature is enabled or not. If not specified, IPV4_ONLY
      # will be used.
      # 
      # This field can be both set at interconnect attachments creation and
      # update interconnect attachment operations.
  &quot;state&quot;: &quot;A String&quot;, # [Output Only] The current state of this attachment&#x27;s functionality.
      # Enum values ACTIVE and UNPROVISIONED are shared by DEDICATED/PRIVATE,
      # PARTNER, and PARTNER_PROVIDER interconnect attachments, while enum values
      # PENDING_PARTNER, PARTNER_REQUEST_RECEIVED, and PENDING_CUSTOMER are used
      # for only PARTNER and PARTNER_PROVIDER interconnect attachments.
      # This state can take one of the following values:
      # 
      #    - ACTIVE: The attachment has been turned up and is ready to use.
      #    - UNPROVISIONED: The attachment is not ready to use yet, because turnup
      #    is not complete.
      #    - PENDING_PARTNER: A newly-created PARTNER attachment that has not yet
      #    been configured on the Partner side.
      #    - PARTNER_REQUEST_RECEIVED: A PARTNER attachment is in the process of
      #    provisioning after a PARTNER_PROVIDER attachment was created that
      #    references it.
      #    - PENDING_CUSTOMER: A PARTNER or PARTNER_PROVIDER
      #    attachment that is waiting for a customer to activate it.
      #    - DEFUNCT:
      #    The attachment was deleted externally and is no longer functional. This
      #    could be because the associated Interconnect was removed, or because the
      #    other side of a Partner attachment was deleted.
  &quot;subnetLength&quot;: 42, # Input only. Length of the IPv4 subnet mask.
      # Allowed values:
      # 
      # 
      #     - 29 (default)
      #     - 30
      # 
      # The default value is 29, except for Cross-Cloud Interconnect
      # connections that use an InterconnectRemoteLocation with a
      # constraints.subnetLengthRange.min equal to 30. For example,
      # connections that use an Azure remote location fall into this
      # category. In these cases, the default value is 30, and requesting
      # 29 returns an error.
      # 
      # Where both 29 and 30 are allowed, 29 is preferred, because it gives
      # Google Cloud Support more debugging visibility.
  &quot;type&quot;: &quot;A String&quot;, # The type of interconnect attachment this is, which can take one of the
      # following values:
      # 
      #    - DEDICATED: an attachment to a Dedicated Interconnect.
      #    - PARTNER: an attachment to a Partner Interconnect, created by the
      #    customer.
      #    - PARTNER_PROVIDER: an attachment to a Partner Interconnect, created by
      #    the partner.
      # 
      # - L2_DEDICATED: a L2 attachment to a Dedicated Interconnect.
  &quot;vlanTag8021q&quot;: 42, # The IEEE 802.1Q VLAN tag for this attachment, in the range 2-4093.
      # Only specified at creation time.
}

  requestId: string, An optional request ID to identify requests. Specify a unique request ID so
that if you must retry your request, the server will know to ignore the
request if it has already been completed.

For example, consider a situation where you make an initial request and
the request times out. If you make the request again with the same
request ID, the server can check if original operation with the same
request ID was received, and if so, will ignore the second request. This
prevents clients from accidentally creating duplicate commitments.

The request ID must be
a valid UUID with the exception that zero UUID is not supported
(00000000-0000-0000-0000-000000000000).
  validateOnly: boolean, If true, the request will not be committed.
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # Represents an Operation resource.
    #
    # Google Compute Engine has three Operation resources:
    #
    # * [Global](/compute/docs/reference/rest/beta/globalOperations)
    # * [Regional](/compute/docs/reference/rest/beta/regionOperations)
    # * [Zonal](/compute/docs/reference/rest/beta/zoneOperations)
    #
    # You can use an operation resource to manage asynchronous API requests.
    # For more information, readHandling
    # API responses.
    #
    # Operations can be global, regional or zonal.
    #
    #    - For global operations, use the `globalOperations`
    #    resource.
    #    - For regional operations, use the
    #    `regionOperations` resource.
    #    - For zonal operations, use
    #    the `zoneOperations` resource.
    #
    #
    #
    # For more information, read
    # Global, Regional, and Zonal Resources.
    #
    # Note that completed Operation resources have a limited
    # retention period.
  &quot;clientOperationId&quot;: &quot;A String&quot;, # [Output Only] The value of `requestId` if you provided it in the request.
      # Not present otherwise.
  &quot;creationTimestamp&quot;: &quot;A String&quot;, # [Deprecated] This field is deprecated.
  &quot;description&quot;: &quot;A String&quot;, # [Output Only] A textual description of the operation, which is
      # set when the operation is created.
  &quot;endTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was completed. This value is inRFC3339
      # text format.
  &quot;error&quot;: { # [Output Only] If errors are generated during processing of the operation,
      # this field will be populated.
    &quot;errors&quot;: [ # [Output Only] The array of errors encountered while processing this
        # operation.
      {
        &quot;code&quot;: &quot;A String&quot;, # [Output Only] The error type identifier for this error.
        &quot;errorDetails&quot;: [ # [Output Only] An optional list of messages that contain the error
            # details. There is a set of defined message types to use for providing
            # details.The syntax depends on the error code. For example,
            # QuotaExceededInfo will have details when the error code is
            # QUOTA_EXCEEDED.
          {
            &quot;errorInfo&quot;: { # Describes the cause of the error with structured details.
                #
                # Example of an error when contacting the &quot;pubsub.googleapis.com&quot; API when it
                # is not enabled:
                #
                #     { &quot;reason&quot;: &quot;API_DISABLED&quot;
                #       &quot;domain&quot;: &quot;googleapis.com&quot;
                #       &quot;metadata&quot;: {
                #         &quot;resource&quot;: &quot;projects/123&quot;,
                #         &quot;service&quot;: &quot;pubsub.googleapis.com&quot;
                #       }
                #     }
                #
                # This response indicates that the pubsub.googleapis.com API is not enabled.
                #
                # Example of an error that is returned when attempting to create a Spanner
                # instance in a region that is out of stock:
                #
                #     { &quot;reason&quot;: &quot;STOCKOUT&quot;
                #       &quot;domain&quot;: &quot;spanner.googleapis.com&quot;,
                #       &quot;metadata&quot;: {
                #         &quot;availableRegions&quot;: &quot;us-central1,us-east2&quot;
                #       }
                #     }
              &quot;domain&quot;: &quot;A String&quot;, # The logical grouping to which the &quot;reason&quot; belongs. The error domain
                  # is typically the registered service name of the tool or product that
                  # generates the error. Example: &quot;pubsub.googleapis.com&quot;. If the error is
                  # generated by some common infrastructure, the error domain must be a
                  # globally unique value that identifies the infrastructure. For Google API
                  # infrastructure, the error domain is &quot;googleapis.com&quot;.
              &quot;metadatas&quot;: { # Additional structured details about this error.
                  #
                  # Keys must match a regular expression of `a-z+` but should
                  # ideally be lowerCamelCase. Also, they must be limited to 64 characters in
                  # length. When identifying the current value of an exceeded limit, the units
                  # should be contained in the key, not the value.  For example, rather than
                  # `{&quot;instanceLimit&quot;: &quot;100/request&quot;}`, should be returned as,
                  # `{&quot;instanceLimitPerRequest&quot;: &quot;100&quot;}`, if the client exceeds the number of
                  # instances that can be created in a single (batch) request.
                &quot;a_key&quot;: &quot;A String&quot;,
              },
              &quot;reason&quot;: &quot;A String&quot;, # The reason of the error. This is a constant value that identifies the
                  # proximate cause of the error. Error reasons are unique within a particular
                  # domain of errors. This should be at most 63 characters and match a
                  # regular expression of `A-Z+[A-Z0-9]`, which represents
                  # UPPER_SNAKE_CASE.
            },
            &quot;help&quot;: { # Provides links to documentation or for performing an out of band action.
                #
                # For example, if a quota check failed with an error indicating the calling
                # project hasn&#x27;t enabled the accessed service, this can contain a URL pointing
                # directly to the right place in the developer console to flip the bit.
              &quot;links&quot;: [ # URL(s) pointing to additional information on handling the current error.
                { # Describes a URL link.
                  &quot;description&quot;: &quot;A String&quot;, # Describes what the link offers.
                  &quot;url&quot;: &quot;A String&quot;, # The URL of the link.
                },
              ],
            },
            &quot;localizedMessage&quot;: { # Provides a localized error message that is safe to return to the user
                # which can be attached to an RPC error.
              &quot;locale&quot;: &quot;A String&quot;, # The locale used following the specification defined at
                  # https://www.rfc-editor.org/rfc/bcp/bcp47.txt.
                  # Examples are: &quot;en-US&quot;, &quot;fr-CH&quot;, &quot;es-MX&quot;
              &quot;message&quot;: &quot;A String&quot;, # The localized error message in the above locale.
            },
            &quot;quotaInfo&quot;: { # Additional details for quota exceeded error for resource quota.
              &quot;dimensions&quot;: { # The map holding related quota dimensions.
                &quot;a_key&quot;: &quot;A String&quot;,
              },
              &quot;futureLimit&quot;: 3.14, # Future quota limit being rolled out. The limit&#x27;s unit depends on the quota
                  #  type or metric.
              &quot;limit&quot;: 3.14, # Current effective quota limit. The limit&#x27;s unit depends on the quota type
                  # or metric.
              &quot;limitName&quot;: &quot;A String&quot;, # The name of the quota limit.
              &quot;metricName&quot;: &quot;A String&quot;, # The Compute Engine quota metric name.
              &quot;rolloutStatus&quot;: &quot;A String&quot;, # Rollout status of the future quota limit.
            },
          },
        ],
        &quot;location&quot;: &quot;A String&quot;, # [Output Only] Indicates the field in the request that caused the error.
            # This property is optional.
        &quot;message&quot;: &quot;A String&quot;, # [Output Only] An optional, human-readable error message.
      },
    ],
  },
  &quot;httpErrorMessage&quot;: &quot;A String&quot;, # [Output Only] If the operation fails, this field contains the HTTP error
      # message that was returned, such as `NOT FOUND`.
  &quot;httpErrorStatusCode&quot;: 42, # [Output Only] If the operation fails, this field contains the HTTP error
      # status code that was returned. For example, a `404` means the
      # resource was not found.
  &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is
      # defined by the server.
  &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested.
      # This value is inRFC3339
      # text format.
  &quot;instancesBulkInsertOperationMetadata&quot;: {
    &quot;perLocationStatus&quot;: { # Status information per location (location name is key).
        # Example key: zones/us-central1-a
      &quot;a_key&quot;: {
        &quot;createdVmCount&quot;: 42, # [Output Only] Count of VMs successfully created so far.
        &quot;deletedVmCount&quot;: 42, # [Output Only] Count of VMs that got deleted during rollback.
        &quot;failedToCreateVmCount&quot;: 42, # [Output Only] Count of VMs that started creating but encountered an
            # error.
        &quot;status&quot;: &quot;A String&quot;, # [Output Only] Creation status of BulkInsert operation - information
            # if the flow is rolling forward or rolling back.
        &quot;targetVmCount&quot;: 42, # [Output Only] Count of VMs originally planned to be created.
      },
    },
  },
  &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for
      # Operation resources.
  &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
  &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a
      # group of operations results from a `bulkInsert` API request.
  &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`,
      # `update`, or `delete`, and so on.
  &quot;progress&quot;: 42, # [Output Only] An optional progress indicator that ranges from 0 to 100.
      # There is no requirement that this be linear or support any granularity of
      # operations. This should not be used to guess when the operation will be
      # complete. This number should monotonically increase as the operation
      # progresses.
  &quot;region&quot;: &quot;A String&quot;, # [Output Only] The URL of the region where the operation resides. Only
      # applicable when performing regional operations.
  &quot;selfLink&quot;: &quot;A String&quot;, # [Output Only] Server-defined URL for the resource.
  &quot;setCommonInstanceMetadataOperationMetadata&quot;: { # [Output Only] If the operation is for projects.setCommonInstanceMetadata,
      # this field will contain information on all underlying zonal actions and
      # their state.
    &quot;clientOperationId&quot;: &quot;A String&quot;, # [Output Only] The client operation id.
    &quot;perLocationOperations&quot;: { # [Output Only] Status information per location (location name is key).
        # Example key: zones/us-central1-a
      &quot;a_key&quot;: {
        &quot;error&quot;: { # The `Status` type defines a logical error model that is suitable for # [Output Only] If state is `ABANDONED` or `FAILED`, this field is
            # populated.
            # different programming environments, including REST APIs and RPC APIs. It is
            # used by [gRPC](https://github.com/grpc). Each `Status` message contains
            # three pieces of data: error code, error message, and error details.
            #
            # You can find out more about this error model and how to work with it in the
            # [API Design Guide](https://cloud.google.com/apis/design/errors).
          &quot;code&quot;: 42, # The status code, which should be an enum value of google.rpc.Code.
          &quot;details&quot;: [ # A list of messages that carry the error details.  There is a common set of
              # message types for APIs to use.
            {
              &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
            },
          ],
          &quot;message&quot;: &quot;A String&quot;, # A developer-facing error message, which should be in English. Any
              # user-facing error message should be localized and sent in the
              # google.rpc.Status.details field, or localized by the client.
        },
        &quot;state&quot;: &quot;A String&quot;, # [Output Only] Status of the action, which can be one of the following:
            # `PROPAGATING`, `PROPAGATED`, `ABANDONED`, `FAILED`, or `DONE`.
      },
    },
  },
  &quot;startTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was started by the server.
      # This value is inRFC3339
      # text format.
  &quot;status&quot;: &quot;A String&quot;, # [Output Only] The status of the operation, which can be one of the
      # following:
      # `PENDING`, `RUNNING`, or `DONE`.
  &quot;statusMessage&quot;: &quot;A String&quot;, # [Output Only] An optional textual description of the current status of the
      # operation.
  &quot;targetId&quot;: &quot;A String&quot;, # [Output Only] The unique target ID, which identifies a specific incarnation
      # of the target resource.
  &quot;targetLink&quot;: &quot;A String&quot;, # [Output Only] The URL of the resource that the operation modifies. For
      # operations related to creating a snapshot, this points to the disk
      # that the snapshot was created from.
  &quot;user&quot;: &quot;A String&quot;, # [Output Only] User who requested the operation, for example:
      # `user@example.com` or
      # `alice_smith_identifier (global/workforcePools/example-com-us-employees)`.
  &quot;warnings&quot;: [ # [Output Only] If warning messages are generated during processing of the
      # operation, this field will be populated.
    {
      &quot;code&quot;: &quot;A String&quot;, # [Output Only] A warning code, if applicable. For example, Compute
          # Engine returns NO_RESULTS_ON_PAGE if there
          # are no results in the response.
      &quot;data&quot;: [ # [Output Only] Metadata about this warning in key:
          # value format. For example:
          #
          # &quot;data&quot;: [
          #   {
          #    &quot;key&quot;: &quot;scope&quot;,
          #    &quot;value&quot;: &quot;zones/us-east1-d&quot;
          #   }
        {
          &quot;key&quot;: &quot;A String&quot;, # [Output Only] A key that provides more detail on the warning being
              # returned. For example, for warnings where there are no results in a list
              # request for a particular zone, this key might be scope and
              # the key value might be the zone name. Other examples might be a key
              # indicating a deprecated resource and a suggested replacement, or a
              # warning about invalid network settings (for example, if an instance
              # attempts to perform IP forwarding but is not enabled for IP forwarding).
          &quot;value&quot;: &quot;A String&quot;, # [Output Only] A warning data value corresponding to the key.
        },
      ],
      &quot;message&quot;: &quot;A String&quot;, # [Output Only] A human-readable description of the warning code.
    },
  ],
  &quot;zone&quot;: &quot;A String&quot;, # [Output Only] The URL of the zone where the operation resides. Only
      # applicable when performing per-zone operations.
}</pre>
</div>

<div class="method">
    <code class="details" id="list">list(project, region, filter=None, maxResults=None, orderBy=None, pageToken=None, returnPartialSuccess=None, x__xgafv=None)</code>
  <pre>Retrieves the list of interconnect attachments contained within
the specified region.

Args:
  project: string, Project ID for this request. (required)
  region: string, Name of the region for this request. (required)
  filter: string, A filter expression that filters resources listed in the response. Most
Compute resources support two types of filter expressions:
expressions that support regular expressions and expressions that follow
API improvement proposal AIP-160.
These two types of filter expressions cannot be mixed in one request.

If you want to use AIP-160, your expression must specify the field name, an
operator, and the value that you want to use for filtering. The value
must be a string, a number, or a boolean. The operator
must be either `=`, `!=`, `&gt;`, `&lt;`, `&lt;=`, `&gt;=` or `:`.

For example, if you are filtering Compute Engine instances, you can
exclude instances named `example-instance` by specifying
`name != example-instance`.

The `:*` comparison can be used to test whether a key has been defined.
For example, to find all objects with `owner` label use:
```
labels.owner:*
```

You can also filter nested fields. For example, you could specify
`scheduling.automaticRestart = false` to include instances only
if they are not scheduled for automatic restarts. You can use filtering
on nested fields to filter based onresource labels.

To filter on multiple expressions, provide each separate expression within
parentheses. For example:
```
(scheduling.automaticRestart = true)
(cpuPlatform = &quot;Intel Skylake&quot;)
```
By default, each expression is an `AND` expression. However, you
can include `AND` and `OR` expressions explicitly.
For example:
```
(cpuPlatform = &quot;Intel Skylake&quot;) OR
(cpuPlatform = &quot;Intel Broadwell&quot;) AND
(scheduling.automaticRestart = true)
```

If you want to use a regular expression, use the `eq` (equal) or `ne`
(not equal) operator against a single un-parenthesized expression with or
without quotes or against multiple parenthesized expressions. Examples:

`fieldname eq unquoted literal`
`fieldname eq &#x27;single quoted literal&#x27;`
`fieldname eq &quot;double quoted literal&quot;`
`(fieldname1 eq literal) (fieldname2 ne &quot;literal&quot;)`

The literal value is interpreted as a regular expression using GoogleRE2 library syntax.
The literal value must match the entire field.

For example, to filter for instances that do not end with name &quot;instance&quot;,
you would use `name ne .*instance`.

You cannot combine constraints on multiple fields using regular
expressions.
  maxResults: integer, The maximum number of results per page that should be returned.
If the number of available results is larger than `maxResults`,
Compute Engine returns a `nextPageToken` that can be used to get
the next page of results in subsequent list requests. Acceptable values are
`0` to `500`, inclusive. (Default: `500`)
  orderBy: string, Sorts list results by a certain order. By default, results
are returned in alphanumerical order based on the resource name.

You can also sort results in descending order based on the creation
timestamp using `orderBy=&quot;creationTimestamp desc&quot;`. This sorts
results based on the `creationTimestamp` field in
reverse chronological order (newest result first). Use this to sort
resources like operations so that the newest operation is returned first.

Currently, only sorting by `name` or
`creationTimestamp desc` is supported.
  pageToken: string, Specifies a page token to use. Set `pageToken` to the
`nextPageToken` returned by a previous list request to get
the next page of results.
  returnPartialSuccess: boolean, Opt-in for partial success behavior which provides partial results in case
of failure. The default value is false.

For example, when partial success behavior is enabled, aggregatedList for a
single zone scope either returns all resources in the zone or no resources,
with an error code.
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # Response to the list request, and contains a list of interconnect
    # attachments.
  &quot;id&quot;: &quot;A String&quot;, # [Output Only] Unique identifier for the resource; defined by the server.
  &quot;items&quot;: [ # A list of InterconnectAttachment resources.
    { # Represents an Interconnect Attachment (VLAN) resource.
        #
        # You can use Interconnect attachments (VLANS) to connect your Virtual Private
        # Cloud networks to your on-premises networks through an Interconnect.
        # For more information, read
        # Creating VLAN Attachments.
      &quot;adminEnabled&quot;: True or False, # Determines whether this Attachment will carry packets.
          # Not present for PARTNER_PROVIDER.
      &quot;attachmentGroup&quot;: &quot;A String&quot;, # [Output Only] URL of the AttachmentGroup that includes this Attachment.
      &quot;bandwidth&quot;: &quot;A String&quot;, # Provisioned bandwidth capacity for the interconnect attachment. For
          # attachments of type DEDICATED, the user can set the bandwidth.
          # For attachments of type PARTNER, the Google Partner that is operating
          # the interconnect must set the bandwidth.
          # Output only for PARTNER type, mutable for PARTNER_PROVIDER and DEDICATED,
          # and can take one of the following values:
          #
          #    - BPS_50M: 50 Mbit/s
          #    - BPS_100M: 100 Mbit/s
          #    - BPS_200M: 200 Mbit/s
          #    - BPS_300M: 300 Mbit/s
          #    - BPS_400M: 400 Mbit/s
          #    - BPS_500M: 500 Mbit/s
          #    - BPS_1G: 1 Gbit/s
          #    - BPS_2G: 2 Gbit/s
          #    - BPS_5G: 5 Gbit/s
          #    - BPS_10G: 10 Gbit/s
          #    - BPS_20G: 20 Gbit/s
          #    - BPS_50G: 50 Gbit/s
          #    - BPS_100G: 100 Gbit/s
      &quot;candidateCloudRouterIpAddress&quot;: &quot;A String&quot;, # Single IPv4 address + prefix length to be configured on the cloud router
          # interface for this interconnect attachment.
          #
          #    - Both candidate_cloud_router_ip_address and
          #    candidate_customer_router_ip_address fields must be set or both must be
          #    unset.
          #    - Prefix length of both candidate_cloud_router_ip_address and
          #    candidate_customer_router_ip_address must be the same.
          #    - Max prefix length is 31.
      &quot;candidateCloudRouterIpv6Address&quot;: &quot;A String&quot;, # Single IPv6 address + prefix length to be configured on the cloud router
          # interface for this interconnect attachment.
          #
          #    - Both candidate_cloud_router_ipv6_address and
          #    candidate_customer_router_ipv6_address fields must be set or both must be
          #    unset.
          #    - Prefix length of both candidate_cloud_router_ipv6_address and
          #    candidate_customer_router_ipv6_address must be the same.
          #    - Max prefix length is 126.
      &quot;candidateCustomerRouterIpAddress&quot;: &quot;A String&quot;, # Single IPv4 address + prefix length to be configured on the customer router
          # interface for this interconnect attachment.
      &quot;candidateCustomerRouterIpv6Address&quot;: &quot;A String&quot;, # Single IPv6 address + prefix length to be configured on the customer router
          # interface for this interconnect attachment.
      &quot;candidateIpv6Subnets&quot;: [ # This field is not available.
        &quot;A String&quot;,
      ],
      &quot;candidateSubnets&quot;: [ # Input only. Up to 16 candidate prefixes that can be used to restrict the allocation
          # of cloudRouterIpAddress and customerRouterIpAddress for this attachment.
          # All prefixes must be within link-local address space (169.254.0.0/16) and
          # must be /29 or shorter (/28, /27, etc). Google will attempt to select an
          # unused /29 from the supplied candidate prefix(es). The request will fail if
          # all possible /29s are in use on Google&#x27;s edge. If not supplied, Google will
          # randomly select an unused /29 from all of link-local space.
        &quot;A String&quot;,
      ],
      &quot;cloudRouterIpAddress&quot;: &quot;A String&quot;, # [Output Only] IPv4 address + prefix length to be configured on Cloud Router
          # Interface for this interconnect attachment.
      &quot;cloudRouterIpv6Address&quot;: &quot;A String&quot;, # [Output Only] IPv6 address + prefix length to be configured on Cloud
          # Router Interface for this interconnect attachment.
      &quot;cloudRouterIpv6InterfaceId&quot;: &quot;A String&quot;, # This field is not available.
      &quot;configurationConstraints&quot;: { # [Output Only] Constraints for this attachment, if any. The attachment does
          # not work if these constraints are not met.
        &quot;bgpMd5&quot;: &quot;A String&quot;, # [Output Only] Whether the attachment&#x27;s BGP session
            # requires/allows/disallows BGP MD5 authentication. This can take one of
            # the following values: MD5_OPTIONAL, MD5_REQUIRED, MD5_UNSUPPORTED.
            #
            # For example, a Cross-Cloud Interconnect connection to a remote cloud
            # provider that requires BGP MD5 authentication has the
            # interconnectRemoteLocation attachment_configuration_constraints.bgp_md5
            # field set to MD5_REQUIRED, and that property is propagated to the
            # attachment. Similarly, if BGP MD5 is MD5_UNSUPPORTED, an error is
            # returned if MD5 is requested.
        &quot;bgpPeerAsnRanges&quot;: [ # [Output Only] List of ASN ranges that the remote location is known to
            # support. Formatted as an array of inclusive ranges {min: min-value, max:
            # max-value}. For example, [{min: 123, max: 123}, {min: 64512, max: 65534}]
            # allows the peer ASN to be 123 or anything in the range 64512-65534.
            #
            # This field is only advisory. Although the API accepts other ranges, these
            # are the ranges that we recommend.
          {
            &quot;max&quot;: 42,
            &quot;min&quot;: 42,
          },
        ],
      },
      &quot;creationTimestamp&quot;: &quot;A String&quot;, # [Output Only] Creation timestamp inRFC3339
          # text format.
      &quot;customerRouterIpAddress&quot;: &quot;A String&quot;, # [Output Only] IPv4 address + prefix length to be configured on the customer
          # router subinterface for this interconnect attachment.
      &quot;customerRouterIpv6Address&quot;: &quot;A String&quot;, # [Output Only] IPv6 address + prefix length to be configured on the
          # customer router subinterface for this interconnect attachment.
      &quot;customerRouterIpv6InterfaceId&quot;: &quot;A String&quot;, # This field is not available.
      &quot;dataplaneVersion&quot;: 42, # [Output Only] Dataplane version for this InterconnectAttachment. This
          # field is only present for Dataplane version 2 and higher. Absence of this
          # field in the API output indicates that the Dataplane is version 1.
      &quot;description&quot;: &quot;A String&quot;, # An optional description of this resource.
      &quot;edgeAvailabilityDomain&quot;: &quot;A String&quot;, # Input only. Desired availability domain for the attachment. Only available for type
          # PARTNER, at creation time, and can take one of the following values:
          #
          #    - AVAILABILITY_DOMAIN_ANY
          #    - AVAILABILITY_DOMAIN_1
          #    - AVAILABILITY_DOMAIN_2
          #
          #
          # For improved reliability, customers should configure a pair of attachments,
          # one per availability domain. The selected availability domain will be
          # provided to the Partner via the pairing key, so that the provisioned
          # circuit will lie in the specified domain. If not specified, the value will
          # default to AVAILABILITY_DOMAIN_ANY.
      &quot;encryption&quot;: &quot;A String&quot;, # Indicates the user-supplied encryption option of this VLAN attachment
          # (interconnectAttachment). Can only be specified at attachment creation
          # for PARTNER or DEDICATED attachments.
          # Possible values are:
          #
          #    - NONE - This is the default value, which means that the
          #    VLAN attachment carries unencrypted traffic. VMs are able to send
          #    traffic to, or receive traffic from, such a VLAN attachment.
          #    - IPSEC - The VLAN attachment carries only encrypted
          #    traffic that is encrypted by an IPsec device, such as an HA VPN gateway or
          #    third-party IPsec VPN. VMs cannot directly send traffic to, or receive
          #    traffic from, such a VLAN attachment. To use *HA VPN over Cloud
          #    Interconnect*, the VLAN attachment must be created with this
          #    option.
      &quot;googleReferenceId&quot;: &quot;A String&quot;, # [Output Only] Google reference ID, to be used when raising support tickets
          # with Google or otherwise to debug backend connectivity issues.
          # [Deprecated] This field is not used.
      &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the resource. This identifier is
          # defined by the server.
      &quot;interconnect&quot;: &quot;A String&quot;, # URL of the underlying Interconnect object that this attachment&#x27;s traffic
          # will traverse through.
      &quot;ipsecInternalAddresses&quot;: [ # A list of URLs of addresses that have been reserved for the VLAN
          # attachment. Used only for the VLAN attachment that has the encryption
          # option as IPSEC. The addresses must be regional internal IP address ranges.
          # When creating an HA VPN gateway over the VLAN attachment, if the attachment
          # is configured to use a regional internal IP address, then the VPN gateway&#x27;s
          # IP address is allocated from the IP address range specified here. For
          # example, if the HA VPN gateway&#x27;s interface 0 is paired to this VLAN
          # attachment, then a regional internal IP address for the VPN gateway
          # interface 0 will be allocated from the IP address specified for this
          # VLAN attachment.
          # If this field is not specified when creating the VLAN attachment, then
          # later on when creating an HA VPN gateway on this VLAN attachment, the HA
          # VPN gateway&#x27;s IP address is allocated from the regional external IP address
          # pool.
        &quot;A String&quot;,
      ],
      &quot;kind&quot;: &quot;compute#interconnectAttachment&quot;, # [Output Only] Type of the resource. Alwayscompute#interconnectAttachment for interconnect attachments.
      &quot;l2Forwarding&quot;: { # L2 Interconnect Attachment related configuration. # L2 Interconnect Attachment related config. This field is required if the
          # type is L2_DEDICATED.
          #
          # The configuration specifies how VLAN tags (like dot1q, qinq, or dot1ad)
          # within L2 packets are mapped to the destination appliances IP addresses.
          # The packet is then encapsulated with the appliance IP address and sent to
          # the edge appliance.
        &quot;applianceMappings&quot;: { # Optional. A map of VLAN tags to appliances and optional inner mapping
            # rules. If VLANs are not explicitly mapped to any appliance, the
            # defaultApplianceIpAddress is used.
            #
            # Each VLAN tag can be a single number or a range of numbers in the range
            # of 1 to 4094, e.g., &quot;1&quot; or &quot;4001-4094&quot;. Non-empty and non-overlapping
            # VLAN tag ranges are enforced, and violating operations will be rejected.
            #
            # The VLAN tags in the Ethernet header must use an ethertype value of
            # 0x88A8 or 0x8100.
          &quot;a_key&quot;: { # Two-level VLAN-to-Appliance mapping rule.
            &quot;applianceIpAddress&quot;: &quot;A String&quot;, # Optional. A single IPv4 or IPv6 address used as the destination IP
                # address for ingress packets that match on a VLAN tag, but do not match
                # a more specific inner VLAN tag.
                #
                # Unset field (null-value) indicates both VLAN tags are required to be
                # mapped. Otherwise, defaultApplianceIpAddress is used.
            &quot;innerVlanToApplianceMappings&quot;: [ # Optional. Used to match against the inner VLAN when the packet
                # contains two VLAN tags.
                #
                # A list of mapping rules from inner VLAN tags to IP addresses. If the
                # inner VLAN is not explicitly mapped to an IP address range, the
                # applianceIpAddress is used.
              { # The inner VLAN-to-Appliance mapping.
                &quot;innerApplianceIpAddress&quot;: &quot;A String&quot;, # Required in this object. A single IPv4 or IPv6 address used as the
                    # destination IP address for ingress packets that match on both VLAN
                    # tags.
                &quot;innerVlanTags&quot;: [ # Required in this object. Used to match the inner VLAN tag on the
                    # packet. Each entry can be a single number or a range of numbers in
                    # the range of 1 to 4094, e.g., [&quot;1&quot;, &quot;4001-4094&quot;] is valid. Non-empty
                    # and Non-overlapping VLAN tag ranges are enforced, and violating
                    # operations will be rejected.
                    #
                    # The inner VLAN tags must have an ethertype value of 0x8100.
                  &quot;A String&quot;,
                ],
              },
            ],
            &quot;name&quot;: &quot;A String&quot;, # Optional. The name of this appliance mapping rule.
          },
        },
        &quot;defaultApplianceIpAddress&quot;: &quot;A String&quot;, # Optional. A single IPv4 or IPv6 address used as the default destination
            # IP when there is no VLAN mapping result found.
            #
            # Unset field (null-value) indicates the unmatched packet should be
            # dropped.
        &quot;geneveHeader&quot;: { # GeneveHeader related configurations. # Optional. It represents the structure of a Geneve (Generic Network
            # Virtualization Encapsulation) header, as defined in RFC8926. It encapsulates packets from various
            # protocols (e.g., Ethernet, IPv4, IPv6) for use in network virtualization
            # environments.
          &quot;vni&quot;: 42, # Optional. VNI is a 24-bit unique virtual network identifier, from 0 to
              # 16,777,215.
        },
        &quot;network&quot;: &quot;A String&quot;, # Required. Resource URL of the network to which this attachment belongs.
        &quot;tunnelEndpointIpAddress&quot;: &quot;A String&quot;, # Required. A single IPv4 or IPv6 address. This address will be used as the
            # source IP address for packets sent to the appliances, and must be used as
            # the destination IP address for packets that should be sent out through
            # this attachment.
      },
      &quot;labelFingerprint&quot;: &quot;A String&quot;, # A fingerprint for the labels being applied to this InterconnectAttachment,
          # which is essentially a hash of the labels set used for optimistic locking.
          # The fingerprint is initially generated by Compute Engine and changes after
          # every request to modify or update labels. You must always provide an
          # up-to-date fingerprint hash in order to update or change labels,
          # otherwise the request will fail with error412 conditionNotMet.
          #
          # To see the latest fingerprint, make a get() request to
          # retrieve an InterconnectAttachment.
      &quot;labels&quot;: { # Labels for this resource. These can only be added or modified by thesetLabels method. Each label key/value pair must comply withRFC1035.
          # Label values may be empty.
        &quot;a_key&quot;: &quot;A String&quot;,
      },
      &quot;mtu&quot;: 42, # Maximum Transmission Unit (MTU), in bytes, of packets passing through this
          # interconnect attachment.
          # Valid values are 1440, 1460, 1500, and 8896. If not specified,
          # the value will default to 1440.
      &quot;name&quot;: &quot;A String&quot;, # Name of the resource. Provided by the client when the resource is created.
          # The name must be 1-63 characters long, and comply withRFC1035.
          # Specifically, the name must be 1-63 characters long and match the regular
          # expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first
          # character must be a lowercase letter, and all following characters must
          # be a dash, lowercase letter, or digit, except the last character, which
          # cannot be a dash.
      &quot;operationalStatus&quot;: &quot;A String&quot;, # [Output Only] The current status of whether or not this interconnect
          # attachment is functional, which can take one of the following values:
          #
          #    - OS_ACTIVE: The attachment has been turned up and is ready to
          #    use.
          #    - OS_UNPROVISIONED: The attachment is not ready to use yet,
          #    because turnup is not complete.
      &quot;pairingKey&quot;: &quot;A String&quot;, # [Output only for type PARTNER. Input only for PARTNER_PROVIDER. Not
          # present for DEDICATED].
          # The opaque identifier of a PARTNER attachment used to initiate
          # provisioning with a selected partner.
          # Of the form &quot;XXXXX/region/domain&quot;
      &quot;params&quot;: { # Additional interconnect attachment parameters. # Input only. [Input Only] Additional params passed with the request, but not persisted
          # as part of resource payload.
        &quot;resourceManagerTags&quot;: { # Tag keys/values directly bound to this resource.
            # Tag keys and values have the same definition as resource
            # manager tags. The field is allowed for INSERT
            # only. The keys/values to set on the resource should be specified in
            # either ID { : } or Namespaced format
            # { : }.
            # For example the following are valid inputs:
            # * {&quot;tagKeys/333&quot; : &quot;tagValues/444&quot;, &quot;tagKeys/123&quot; : &quot;tagValues/456&quot;}
            # * {&quot;123/environment&quot; : &quot;production&quot;, &quot;345/abc&quot; : &quot;xyz&quot;}
            # Note:
            # * Invalid combinations of ID &amp; namespaced format is not supported. For
            #   instance: {&quot;123/environment&quot; : &quot;tagValues/444&quot;} is invalid.
            # * Inconsistent format is not supported. For instance:
            #   {&quot;tagKeys/333&quot; : &quot;tagValues/444&quot;, &quot;123/env&quot; : &quot;prod&quot;} is invalid.
          &quot;a_key&quot;: &quot;A String&quot;,
        },
      },
      &quot;partnerAsn&quot;: &quot;A String&quot;, # Optional BGP ASN for the router supplied by a Layer 3 Partner if they
          # configured BGP on behalf of the customer.
          # Output only for PARTNER type, input only for PARTNER_PROVIDER, not
          # available for DEDICATED.
      &quot;partnerMetadata&quot;: { # Informational metadata about Partner attachments from Partners to display # Informational metadata about Partner attachments from Partners to display
          # to customers.
          # Output only for PARTNER type, mutable for PARTNER_PROVIDER, not
          # available for DEDICATED.
          # to customers.  These fields are propagated from PARTNER_PROVIDER
          # attachments to their corresponding PARTNER attachments.
        &quot;interconnectName&quot;: &quot;A String&quot;, # Plain text name of the Interconnect this attachment is connected to, as
            # displayed in the Partner&#x27;s portal. For instance &quot;Chicago 1&quot;.
            # This value may be validated to match approved Partner values.
        &quot;partnerName&quot;: &quot;A String&quot;, # Plain text name of the Partner providing this attachment.
            # This value may be validated to match approved Partner values.
        &quot;portalUrl&quot;: &quot;A String&quot;, # URL of the Partner&#x27;s portal for this Attachment. Partners may customise
            # this to be a deep link to the specific resource on the Partner portal.
            # This value may be validated to match approved Partner values.
      },
      &quot;privateInterconnectInfo&quot;: { # Information for an interconnect attachment when this belongs to an # [Output Only] Information specific to an InterconnectAttachment.
          # This property is populated if the interconnect that
          # this is attached to is of type DEDICATED.
          # interconnect of type DEDICATED.
        &quot;tag8021q&quot;: 42, # [Output Only] 802.1q encapsulation tag to be used for traffic between
            # Google and the customer, going to and from this network and region.
      },
      &quot;region&quot;: &quot;A String&quot;, # [Output Only] URL of the region where the regional interconnect attachment
          # resides.
          # You must specify this field as part of the HTTP request URL. It is
          # not settable as a field in the request body.
      &quot;remoteService&quot;: &quot;A String&quot;, # [Output Only]
          # If the attachment is on a Cross-Cloud Interconnect connection, this field
          # contains the interconnect&#x27;s remote location service provider. Example
          # values: &quot;Amazon Web Services&quot; &quot;Microsoft Azure&quot;.
          #
          # The field is set only for attachments on Cross-Cloud Interconnect
          # connections. Its value is copied from the InterconnectRemoteLocation
          # remoteService field.
      &quot;router&quot;: &quot;A String&quot;, # URL of the Cloud Router to be used for dynamic routing. This router must be
          # in the same region as this InterconnectAttachment. The
          # InterconnectAttachment will automatically connect the Interconnect to the
          # network &amp; region within which the Cloud Router is configured.
      &quot;satisfiesPzs&quot;: True or False, # [Output Only] Reserved for future use.
      &quot;selfLink&quot;: &quot;A String&quot;, # [Output Only] Server-defined URL for the resource.
      &quot;stackType&quot;: &quot;A String&quot;, # The stack type for this interconnect attachment to identify whether the
          # IPv6 feature is enabled or not. If not specified, IPV4_ONLY
          # will be used.
          #
          # This field can be both set at interconnect attachments creation and
          # update interconnect attachment operations.
      &quot;state&quot;: &quot;A String&quot;, # [Output Only] The current state of this attachment&#x27;s functionality.
          # Enum values ACTIVE and UNPROVISIONED are shared by DEDICATED/PRIVATE,
          # PARTNER, and PARTNER_PROVIDER interconnect attachments, while enum values
          # PENDING_PARTNER, PARTNER_REQUEST_RECEIVED, and PENDING_CUSTOMER are used
          # for only PARTNER and PARTNER_PROVIDER interconnect attachments.
          # This state can take one of the following values:
          #
          #    - ACTIVE: The attachment has been turned up and is ready to use.
          #    - UNPROVISIONED: The attachment is not ready to use yet, because turnup
          #    is not complete.
          #    - PENDING_PARTNER: A newly-created PARTNER attachment that has not yet
          #    been configured on the Partner side.
          #    - PARTNER_REQUEST_RECEIVED: A PARTNER attachment is in the process of
          #    provisioning after a PARTNER_PROVIDER attachment was created that
          #    references it.
          #    - PENDING_CUSTOMER: A PARTNER or PARTNER_PROVIDER
          #    attachment that is waiting for a customer to activate it.
          #    - DEFUNCT:
          #    The attachment was deleted externally and is no longer functional. This
          #    could be because the associated Interconnect was removed, or because the
          #    other side of a Partner attachment was deleted.
      &quot;subnetLength&quot;: 42, # Input only. Length of the IPv4 subnet mask.
          # Allowed values:
          #
          #
          #     - 29 (default)
          #     - 30
          #
          # The default value is 29, except for Cross-Cloud Interconnect
          # connections that use an InterconnectRemoteLocation with a
          # constraints.subnetLengthRange.min equal to 30. For example,
          # connections that use an Azure remote location fall into this
          # category. In these cases, the default value is 30, and requesting
          # 29 returns an error.
          #
          # Where both 29 and 30 are allowed, 29 is preferred, because it gives
          # Google Cloud Support more debugging visibility.
      &quot;type&quot;: &quot;A String&quot;, # The type of interconnect attachment this is, which can take one of the
          # following values:
          #
          #    - DEDICATED: an attachment to a Dedicated Interconnect.
          #    - PARTNER: an attachment to a Partner Interconnect, created by the
          #    customer.
          #    - PARTNER_PROVIDER: an attachment to a Partner Interconnect, created by
          #    the partner.
          #
          # - L2_DEDICATED: a L2 attachment to a Dedicated Interconnect.
      &quot;vlanTag8021q&quot;: 42, # The IEEE 802.1Q VLAN tag for this attachment, in the range 2-4093.
          # Only specified at creation time.
    },
  ],
  &quot;kind&quot;: &quot;compute#interconnectAttachmentList&quot;, # [Output Only] Type of resource. Alwayscompute#interconnectAttachmentList for lists of interconnect
      # attachments.
  &quot;nextPageToken&quot;: &quot;A String&quot;, # [Output Only] This token allows you to get the next page of results for
      # list requests. If the number of results is larger thanmaxResults, use the nextPageToken as a value for
      # the query parameter pageToken in the next list request.
      # Subsequent list requests will have their own nextPageToken to
      # continue paging through the results.
  &quot;selfLink&quot;: &quot;A String&quot;, # [Output Only] Server-defined URL for this resource.
  &quot;warning&quot;: { # [Output Only] Informational warning message.
    &quot;code&quot;: &quot;A String&quot;, # [Output Only] A warning code, if applicable. For example, Compute
        # Engine returns NO_RESULTS_ON_PAGE if there
        # are no results in the response.
    &quot;data&quot;: [ # [Output Only] Metadata about this warning in key:
        # value format. For example:
        #
        # &quot;data&quot;: [
        #   {
        #    &quot;key&quot;: &quot;scope&quot;,
        #    &quot;value&quot;: &quot;zones/us-east1-d&quot;
        #   }
      {
        &quot;key&quot;: &quot;A String&quot;, # [Output Only] A key that provides more detail on the warning being
            # returned. For example, for warnings where there are no results in a list
            # request for a particular zone, this key might be scope and
            # the key value might be the zone name. Other examples might be a key
            # indicating a deprecated resource and a suggested replacement, or a
            # warning about invalid network settings (for example, if an instance
            # attempts to perform IP forwarding but is not enabled for IP forwarding).
        &quot;value&quot;: &quot;A String&quot;, # [Output Only] A warning data value corresponding to the key.
      },
    ],
    &quot;message&quot;: &quot;A String&quot;, # [Output Only] A human-readable description of the warning code.
  },
}</pre>
</div>

<div class="method">
    <code class="details" id="list_next">list_next()</code>
  <pre>Retrieves the next page of results.

        Args:
          previous_request: The request for the previous page. (required)
          previous_response: The response from the request for the previous page. (required)

        Returns:
          A request object that you can call &#x27;execute()&#x27; on to request the next
          page. Returns None if there are no more items in the collection.
        </pre>
</div>

<div class="method">
    <code class="details" id="patch">patch(project, region, interconnectAttachment, body=None, requestId=None, x__xgafv=None)</code>
  <pre>Updates the specified interconnect attachment with the data included in the
request. This method supportsPATCH
semantics and uses theJSON merge
patch format and processing rules.

Args:
  project: string, Project ID for this request. (required)
  region: string, Name of the region scoping this request. (required)
  interconnectAttachment: string, Name of the interconnect attachment to patch. (required)
  body: object, The request body.
    The object takes the form of:

{ # Represents an Interconnect Attachment (VLAN) resource.
    # 
    # You can use Interconnect attachments (VLANS) to connect your Virtual Private
    # Cloud networks to your on-premises networks through an Interconnect.
    # For more information, read
    # Creating VLAN Attachments.
  &quot;adminEnabled&quot;: True or False, # Determines whether this Attachment will carry packets.
      # Not present for PARTNER_PROVIDER.
  &quot;attachmentGroup&quot;: &quot;A String&quot;, # [Output Only] URL of the AttachmentGroup that includes this Attachment.
  &quot;bandwidth&quot;: &quot;A String&quot;, # Provisioned bandwidth capacity for the interconnect attachment. For
      # attachments of type DEDICATED, the user can set the bandwidth.
      # For attachments of type PARTNER, the Google Partner that is operating
      # the interconnect must set the bandwidth.
      # Output only for PARTNER type, mutable for PARTNER_PROVIDER and DEDICATED,
      # and can take one of the following values:
      # 
      #    - BPS_50M: 50 Mbit/s
      #    - BPS_100M: 100 Mbit/s
      #    - BPS_200M: 200 Mbit/s
      #    - BPS_300M: 300 Mbit/s
      #    - BPS_400M: 400 Mbit/s
      #    - BPS_500M: 500 Mbit/s
      #    - BPS_1G: 1 Gbit/s
      #    - BPS_2G: 2 Gbit/s
      #    - BPS_5G: 5 Gbit/s
      #    - BPS_10G: 10 Gbit/s
      #    - BPS_20G: 20 Gbit/s
      #    - BPS_50G: 50 Gbit/s
      #    - BPS_100G: 100 Gbit/s
  &quot;candidateCloudRouterIpAddress&quot;: &quot;A String&quot;, # Single IPv4 address + prefix length to be configured on the cloud router
      # interface for this interconnect attachment.
      # 
      #    - Both candidate_cloud_router_ip_address and
      #    candidate_customer_router_ip_address fields must be set or both must be
      #    unset.
      #    - Prefix length of both candidate_cloud_router_ip_address and
      #    candidate_customer_router_ip_address must be the same.
      #    - Max prefix length is 31.
  &quot;candidateCloudRouterIpv6Address&quot;: &quot;A String&quot;, # Single IPv6 address + prefix length to be configured on the cloud router
      # interface for this interconnect attachment.
      # 
      #    - Both candidate_cloud_router_ipv6_address and
      #    candidate_customer_router_ipv6_address fields must be set or both must be
      #    unset.
      #    - Prefix length of both candidate_cloud_router_ipv6_address and
      #    candidate_customer_router_ipv6_address must be the same.
      #    - Max prefix length is 126.
  &quot;candidateCustomerRouterIpAddress&quot;: &quot;A String&quot;, # Single IPv4 address + prefix length to be configured on the customer router
      # interface for this interconnect attachment.
  &quot;candidateCustomerRouterIpv6Address&quot;: &quot;A String&quot;, # Single IPv6 address + prefix length to be configured on the customer router
      # interface for this interconnect attachment.
  &quot;candidateIpv6Subnets&quot;: [ # This field is not available.
    &quot;A String&quot;,
  ],
  &quot;candidateSubnets&quot;: [ # Input only. Up to 16 candidate prefixes that can be used to restrict the allocation
      # of cloudRouterIpAddress and customerRouterIpAddress for this attachment.
      # All prefixes must be within link-local address space (169.254.0.0/16) and
      # must be /29 or shorter (/28, /27, etc). Google will attempt to select an
      # unused /29 from the supplied candidate prefix(es). The request will fail if
      # all possible /29s are in use on Google&#x27;s edge. If not supplied, Google will
      # randomly select an unused /29 from all of link-local space.
    &quot;A String&quot;,
  ],
  &quot;cloudRouterIpAddress&quot;: &quot;A String&quot;, # [Output Only] IPv4 address + prefix length to be configured on Cloud Router
      # Interface for this interconnect attachment.
  &quot;cloudRouterIpv6Address&quot;: &quot;A String&quot;, # [Output Only] IPv6 address + prefix length to be configured on Cloud
      # Router Interface for this interconnect attachment.
  &quot;cloudRouterIpv6InterfaceId&quot;: &quot;A String&quot;, # This field is not available.
  &quot;configurationConstraints&quot;: { # [Output Only] Constraints for this attachment, if any. The attachment does
      # not work if these constraints are not met.
    &quot;bgpMd5&quot;: &quot;A String&quot;, # [Output Only] Whether the attachment&#x27;s BGP session
        # requires/allows/disallows BGP MD5 authentication. This can take one of
        # the following values: MD5_OPTIONAL, MD5_REQUIRED, MD5_UNSUPPORTED.
        #
        # For example, a Cross-Cloud Interconnect connection to a remote cloud
        # provider that requires BGP MD5 authentication has the
        # interconnectRemoteLocation attachment_configuration_constraints.bgp_md5
        # field set to MD5_REQUIRED, and that property is propagated to the
        # attachment. Similarly, if BGP MD5 is MD5_UNSUPPORTED, an error is
        # returned if MD5 is requested.
    &quot;bgpPeerAsnRanges&quot;: [ # [Output Only] List of ASN ranges that the remote location is known to
        # support. Formatted as an array of inclusive ranges {min: min-value, max:
        # max-value}. For example, [{min: 123, max: 123}, {min: 64512, max: 65534}]
        # allows the peer ASN to be 123 or anything in the range 64512-65534.
        #
        # This field is only advisory. Although the API accepts other ranges, these
        # are the ranges that we recommend.
      {
        &quot;max&quot;: 42,
        &quot;min&quot;: 42,
      },
    ],
  },
  &quot;creationTimestamp&quot;: &quot;A String&quot;, # [Output Only] Creation timestamp inRFC3339
      # text format.
  &quot;customerRouterIpAddress&quot;: &quot;A String&quot;, # [Output Only] IPv4 address + prefix length to be configured on the customer
      # router subinterface for this interconnect attachment.
  &quot;customerRouterIpv6Address&quot;: &quot;A String&quot;, # [Output Only] IPv6 address + prefix length to be configured on the
      # customer router subinterface for this interconnect attachment.
  &quot;customerRouterIpv6InterfaceId&quot;: &quot;A String&quot;, # This field is not available.
  &quot;dataplaneVersion&quot;: 42, # [Output Only] Dataplane version for this InterconnectAttachment. This
      # field is only present for Dataplane version 2 and higher. Absence of this
      # field in the API output indicates that the Dataplane is version 1.
  &quot;description&quot;: &quot;A String&quot;, # An optional description of this resource.
  &quot;edgeAvailabilityDomain&quot;: &quot;A String&quot;, # Input only. Desired availability domain for the attachment. Only available for type
      # PARTNER, at creation time, and can take one of the following values:
      # 
      #    - AVAILABILITY_DOMAIN_ANY
      #    - AVAILABILITY_DOMAIN_1
      #    - AVAILABILITY_DOMAIN_2
      # 
      # 
      # For improved reliability, customers should configure a pair of attachments,
      # one per availability domain. The selected availability domain will be
      # provided to the Partner via the pairing key, so that the provisioned
      # circuit will lie in the specified domain. If not specified, the value will
      # default to AVAILABILITY_DOMAIN_ANY.
  &quot;encryption&quot;: &quot;A String&quot;, # Indicates the user-supplied encryption option of this VLAN attachment
      # (interconnectAttachment). Can only be specified at attachment creation
      # for PARTNER or DEDICATED attachments.
      # Possible values are:
      # 
      #    - NONE - This is the default value, which means that the
      #    VLAN attachment carries unencrypted traffic. VMs are able to send
      #    traffic to, or receive traffic from, such a VLAN attachment.
      #    - IPSEC - The VLAN attachment carries only encrypted
      #    traffic that is encrypted by an IPsec device, such as an HA VPN gateway or
      #    third-party IPsec VPN. VMs cannot directly send traffic to, or receive
      #    traffic from, such a VLAN attachment. To use *HA VPN over Cloud
      #    Interconnect*, the VLAN attachment must be created with this
      #    option.
  &quot;googleReferenceId&quot;: &quot;A String&quot;, # [Output Only] Google reference ID, to be used when raising support tickets
      # with Google or otherwise to debug backend connectivity issues.
      # [Deprecated] This field is not used.
  &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the resource. This identifier is
      # defined by the server.
  &quot;interconnect&quot;: &quot;A String&quot;, # URL of the underlying Interconnect object that this attachment&#x27;s traffic
      # will traverse through.
  &quot;ipsecInternalAddresses&quot;: [ # A list of URLs of addresses that have been reserved for the VLAN
      # attachment. Used only for the VLAN attachment that has the encryption
      # option as IPSEC. The addresses must be regional internal IP address ranges.
      # When creating an HA VPN gateway over the VLAN attachment, if the attachment
      # is configured to use a regional internal IP address, then the VPN gateway&#x27;s
      # IP address is allocated from the IP address range specified here. For
      # example, if the HA VPN gateway&#x27;s interface 0 is paired to this VLAN
      # attachment, then a regional internal IP address for the VPN gateway
      # interface 0 will be allocated from the IP address specified for this
      # VLAN attachment.
      # If this field is not specified when creating the VLAN attachment, then
      # later on when creating an HA VPN gateway on this VLAN attachment, the HA
      # VPN gateway&#x27;s IP address is allocated from the regional external IP address
      # pool.
    &quot;A String&quot;,
  ],
  &quot;kind&quot;: &quot;compute#interconnectAttachment&quot;, # [Output Only] Type of the resource. Alwayscompute#interconnectAttachment for interconnect attachments.
  &quot;l2Forwarding&quot;: { # L2 Interconnect Attachment related configuration. # L2 Interconnect Attachment related config. This field is required if the
      # type is L2_DEDICATED.
      # 
      # The configuration specifies how VLAN tags (like dot1q, qinq, or dot1ad)
      # within L2 packets are mapped to the destination appliances IP addresses.
      # The packet is then encapsulated with the appliance IP address and sent to
      # the edge appliance.
    &quot;applianceMappings&quot;: { # Optional. A map of VLAN tags to appliances and optional inner mapping
        # rules. If VLANs are not explicitly mapped to any appliance, the
        # defaultApplianceIpAddress is used.
        #
        # Each VLAN tag can be a single number or a range of numbers in the range
        # of 1 to 4094, e.g., &quot;1&quot; or &quot;4001-4094&quot;. Non-empty and non-overlapping
        # VLAN tag ranges are enforced, and violating operations will be rejected.
        #
        # The VLAN tags in the Ethernet header must use an ethertype value of
        # 0x88A8 or 0x8100.
      &quot;a_key&quot;: { # Two-level VLAN-to-Appliance mapping rule.
        &quot;applianceIpAddress&quot;: &quot;A String&quot;, # Optional. A single IPv4 or IPv6 address used as the destination IP
            # address for ingress packets that match on a VLAN tag, but do not match
            # a more specific inner VLAN tag.
            #
            # Unset field (null-value) indicates both VLAN tags are required to be
            # mapped. Otherwise, defaultApplianceIpAddress is used.
        &quot;innerVlanToApplianceMappings&quot;: [ # Optional. Used to match against the inner VLAN when the packet
            # contains two VLAN tags.
            #
            # A list of mapping rules from inner VLAN tags to IP addresses. If the
            # inner VLAN is not explicitly mapped to an IP address range, the
            # applianceIpAddress is used.
          { # The inner VLAN-to-Appliance mapping.
            &quot;innerApplianceIpAddress&quot;: &quot;A String&quot;, # Required in this object. A single IPv4 or IPv6 address used as the
                # destination IP address for ingress packets that match on both VLAN
                # tags.
            &quot;innerVlanTags&quot;: [ # Required in this object. Used to match the inner VLAN tag on the
                # packet. Each entry can be a single number or a range of numbers in
                # the range of 1 to 4094, e.g., [&quot;1&quot;, &quot;4001-4094&quot;] is valid. Non-empty
                # and Non-overlapping VLAN tag ranges are enforced, and violating
                # operations will be rejected.
                #
                # The inner VLAN tags must have an ethertype value of 0x8100.
              &quot;A String&quot;,
            ],
          },
        ],
        &quot;name&quot;: &quot;A String&quot;, # Optional. The name of this appliance mapping rule.
      },
    },
    &quot;defaultApplianceIpAddress&quot;: &quot;A String&quot;, # Optional. A single IPv4 or IPv6 address used as the default destination
        # IP when there is no VLAN mapping result found.
        #
        # Unset field (null-value) indicates the unmatched packet should be
        # dropped.
    &quot;geneveHeader&quot;: { # GeneveHeader related configurations. # Optional. It represents the structure of a Geneve (Generic Network
        # Virtualization Encapsulation) header, as defined in RFC8926. It encapsulates packets from various
        # protocols (e.g., Ethernet, IPv4, IPv6) for use in network virtualization
        # environments.
      &quot;vni&quot;: 42, # Optional. VNI is a 24-bit unique virtual network identifier, from 0 to
          # 16,777,215.
    },
    &quot;network&quot;: &quot;A String&quot;, # Required. Resource URL of the network to which this attachment belongs.
    &quot;tunnelEndpointIpAddress&quot;: &quot;A String&quot;, # Required. A single IPv4 or IPv6 address. This address will be used as the
        # source IP address for packets sent to the appliances, and must be used as
        # the destination IP address for packets that should be sent out through
        # this attachment.
  },
  &quot;labelFingerprint&quot;: &quot;A String&quot;, # A fingerprint for the labels being applied to this InterconnectAttachment,
      # which is essentially a hash of the labels set used for optimistic locking.
      # The fingerprint is initially generated by Compute Engine and changes after
      # every request to modify or update labels. You must always provide an
      # up-to-date fingerprint hash in order to update or change labels,
      # otherwise the request will fail with error412 conditionNotMet.
      # 
      # To see the latest fingerprint, make a get() request to
      # retrieve an InterconnectAttachment.
  &quot;labels&quot;: { # Labels for this resource. These can only be added or modified by thesetLabels method. Each label key/value pair must comply withRFC1035.
      # Label values may be empty.
    &quot;a_key&quot;: &quot;A String&quot;,
  },
  &quot;mtu&quot;: 42, # Maximum Transmission Unit (MTU), in bytes, of packets passing through this
      # interconnect attachment.
      # Valid values are 1440, 1460, 1500, and 8896. If not specified,
      # the value will default to 1440.
  &quot;name&quot;: &quot;A String&quot;, # Name of the resource. Provided by the client when the resource is created.
      # The name must be 1-63 characters long, and comply withRFC1035.
      # Specifically, the name must be 1-63 characters long and match the regular
      # expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first
      # character must be a lowercase letter, and all following characters must
      # be a dash, lowercase letter, or digit, except the last character, which
      # cannot be a dash.
  &quot;operationalStatus&quot;: &quot;A String&quot;, # [Output Only] The current status of whether or not this interconnect
      # attachment is functional, which can take one of the following values:
      # 
      #    - OS_ACTIVE: The attachment has been turned up and is ready to
      #    use.
      #    - OS_UNPROVISIONED: The attachment is not ready to use yet,
      #    because turnup is not complete.
  &quot;pairingKey&quot;: &quot;A String&quot;, # [Output only for type PARTNER. Input only for PARTNER_PROVIDER. Not
      # present for DEDICATED].
      # The opaque identifier of a PARTNER attachment used to initiate
      # provisioning with a selected partner.
      # Of the form &quot;XXXXX/region/domain&quot;
  &quot;params&quot;: { # Additional interconnect attachment parameters. # Input only. [Input Only] Additional params passed with the request, but not persisted
      # as part of resource payload.
    &quot;resourceManagerTags&quot;: { # Tag keys/values directly bound to this resource.
        # Tag keys and values have the same definition as resource
        # manager tags. The field is allowed for INSERT
        # only. The keys/values to set on the resource should be specified in
        # either ID { : } or Namespaced format
        # { : }.
        # For example the following are valid inputs:
        # * {&quot;tagKeys/333&quot; : &quot;tagValues/444&quot;, &quot;tagKeys/123&quot; : &quot;tagValues/456&quot;}
        # * {&quot;123/environment&quot; : &quot;production&quot;, &quot;345/abc&quot; : &quot;xyz&quot;}
        # Note:
        # * Invalid combinations of ID &amp; namespaced format is not supported. For
        #   instance: {&quot;123/environment&quot; : &quot;tagValues/444&quot;} is invalid.
        # * Inconsistent format is not supported. For instance:
        #   {&quot;tagKeys/333&quot; : &quot;tagValues/444&quot;, &quot;123/env&quot; : &quot;prod&quot;} is invalid.
      &quot;a_key&quot;: &quot;A String&quot;,
    },
  },
  &quot;partnerAsn&quot;: &quot;A String&quot;, # Optional BGP ASN for the router supplied by a Layer 3 Partner if they
      # configured BGP on behalf of the customer.
      # Output only for PARTNER type, input only for PARTNER_PROVIDER, not
      # available for DEDICATED.
  &quot;partnerMetadata&quot;: { # Informational metadata about Partner attachments from Partners to display # Informational metadata about Partner attachments from Partners to display
      # to customers.
      # Output only for PARTNER type, mutable for PARTNER_PROVIDER, not
      # available for DEDICATED.
      # to customers.  These fields are propagated from PARTNER_PROVIDER
      # attachments to their corresponding PARTNER attachments.
    &quot;interconnectName&quot;: &quot;A String&quot;, # Plain text name of the Interconnect this attachment is connected to, as
        # displayed in the Partner&#x27;s portal. For instance &quot;Chicago 1&quot;.
        # This value may be validated to match approved Partner values.
    &quot;partnerName&quot;: &quot;A String&quot;, # Plain text name of the Partner providing this attachment.
        # This value may be validated to match approved Partner values.
    &quot;portalUrl&quot;: &quot;A String&quot;, # URL of the Partner&#x27;s portal for this Attachment. Partners may customise
        # this to be a deep link to the specific resource on the Partner portal.
        # This value may be validated to match approved Partner values.
  },
  &quot;privateInterconnectInfo&quot;: { # Information for an interconnect attachment when this belongs to an # [Output Only] Information specific to an InterconnectAttachment.
      # This property is populated if the interconnect that
      # this is attached to is of type DEDICATED.
      # interconnect of type DEDICATED.
    &quot;tag8021q&quot;: 42, # [Output Only] 802.1q encapsulation tag to be used for traffic between
        # Google and the customer, going to and from this network and region.
  },
  &quot;region&quot;: &quot;A String&quot;, # [Output Only] URL of the region where the regional interconnect attachment
      # resides.
      # You must specify this field as part of the HTTP request URL. It is
      # not settable as a field in the request body.
  &quot;remoteService&quot;: &quot;A String&quot;, # [Output Only]
      # If the attachment is on a Cross-Cloud Interconnect connection, this field
      # contains the interconnect&#x27;s remote location service provider. Example
      # values: &quot;Amazon Web Services&quot; &quot;Microsoft Azure&quot;.
      # 
      # The field is set only for attachments on Cross-Cloud Interconnect
      # connections. Its value is copied from the InterconnectRemoteLocation
      # remoteService field.
  &quot;router&quot;: &quot;A String&quot;, # URL of the Cloud Router to be used for dynamic routing. This router must be
      # in the same region as this InterconnectAttachment. The
      # InterconnectAttachment will automatically connect the Interconnect to the
      # network &amp; region within which the Cloud Router is configured.
  &quot;satisfiesPzs&quot;: True or False, # [Output Only] Reserved for future use.
  &quot;selfLink&quot;: &quot;A String&quot;, # [Output Only] Server-defined URL for the resource.
  &quot;stackType&quot;: &quot;A String&quot;, # The stack type for this interconnect attachment to identify whether the
      # IPv6 feature is enabled or not. If not specified, IPV4_ONLY
      # will be used.
      # 
      # This field can be both set at interconnect attachments creation and
      # update interconnect attachment operations.
  &quot;state&quot;: &quot;A String&quot;, # [Output Only] The current state of this attachment&#x27;s functionality.
      # Enum values ACTIVE and UNPROVISIONED are shared by DEDICATED/PRIVATE,
      # PARTNER, and PARTNER_PROVIDER interconnect attachments, while enum values
      # PENDING_PARTNER, PARTNER_REQUEST_RECEIVED, and PENDING_CUSTOMER are used
      # for only PARTNER and PARTNER_PROVIDER interconnect attachments.
      # This state can take one of the following values:
      # 
      #    - ACTIVE: The attachment has been turned up and is ready to use.
      #    - UNPROVISIONED: The attachment is not ready to use yet, because turnup
      #    is not complete.
      #    - PENDING_PARTNER: A newly-created PARTNER attachment that has not yet
      #    been configured on the Partner side.
      #    - PARTNER_REQUEST_RECEIVED: A PARTNER attachment is in the process of
      #    provisioning after a PARTNER_PROVIDER attachment was created that
      #    references it.
      #    - PENDING_CUSTOMER: A PARTNER or PARTNER_PROVIDER
      #    attachment that is waiting for a customer to activate it.
      #    - DEFUNCT:
      #    The attachment was deleted externally and is no longer functional. This
      #    could be because the associated Interconnect was removed, or because the
      #    other side of a Partner attachment was deleted.
  &quot;subnetLength&quot;: 42, # Input only. Length of the IPv4 subnet mask.
      # Allowed values:
      # 
      # 
      #     - 29 (default)
      #     - 30
      # 
      # The default value is 29, except for Cross-Cloud Interconnect
      # connections that use an InterconnectRemoteLocation with a
      # constraints.subnetLengthRange.min equal to 30. For example,
      # connections that use an Azure remote location fall into this
      # category. In these cases, the default value is 30, and requesting
      # 29 returns an error.
      # 
      # Where both 29 and 30 are allowed, 29 is preferred, because it gives
      # Google Cloud Support more debugging visibility.
  &quot;type&quot;: &quot;A String&quot;, # The type of interconnect attachment this is, which can take one of the
      # following values:
      # 
      #    - DEDICATED: an attachment to a Dedicated Interconnect.
      #    - PARTNER: an attachment to a Partner Interconnect, created by the
      #    customer.
      #    - PARTNER_PROVIDER: an attachment to a Partner Interconnect, created by
      #    the partner.
      # 
      # - L2_DEDICATED: a L2 attachment to a Dedicated Interconnect.
  &quot;vlanTag8021q&quot;: 42, # The IEEE 802.1Q VLAN tag for this attachment, in the range 2-4093.
      # Only specified at creation time.
}

  requestId: string, An optional request ID to identify requests. Specify a unique request ID so
that if you must retry your request, the server will know to ignore the
request if it has already been completed.

For example, consider a situation where you make an initial request and
the request times out. If you make the request again with the same
request ID, the server can check if original operation with the same
request ID was received, and if so, will ignore the second request. This
prevents clients from accidentally creating duplicate commitments.

The request ID must be
a valid UUID with the exception that zero UUID is not supported
(00000000-0000-0000-0000-000000000000).
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # Represents an Operation resource.
    #
    # Google Compute Engine has three Operation resources:
    #
    # * [Global](/compute/docs/reference/rest/beta/globalOperations)
    # * [Regional](/compute/docs/reference/rest/beta/regionOperations)
    # * [Zonal](/compute/docs/reference/rest/beta/zoneOperations)
    #
    # You can use an operation resource to manage asynchronous API requests.
    # For more information, readHandling
    # API responses.
    #
    # Operations can be global, regional or zonal.
    #
    #    - For global operations, use the `globalOperations`
    #    resource.
    #    - For regional operations, use the
    #    `regionOperations` resource.
    #    - For zonal operations, use
    #    the `zoneOperations` resource.
    #
    #
    #
    # For more information, read
    # Global, Regional, and Zonal Resources.
    #
    # Note that completed Operation resources have a limited
    # retention period.
  &quot;clientOperationId&quot;: &quot;A String&quot;, # [Output Only] The value of `requestId` if you provided it in the request.
      # Not present otherwise.
  &quot;creationTimestamp&quot;: &quot;A String&quot;, # [Deprecated] This field is deprecated.
  &quot;description&quot;: &quot;A String&quot;, # [Output Only] A textual description of the operation, which is
      # set when the operation is created.
  &quot;endTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was completed. This value is inRFC3339
      # text format.
  &quot;error&quot;: { # [Output Only] If errors are generated during processing of the operation,
      # this field will be populated.
    &quot;errors&quot;: [ # [Output Only] The array of errors encountered while processing this
        # operation.
      {
        &quot;code&quot;: &quot;A String&quot;, # [Output Only] The error type identifier for this error.
        &quot;errorDetails&quot;: [ # [Output Only] An optional list of messages that contain the error
            # details. There is a set of defined message types to use for providing
            # details.The syntax depends on the error code. For example,
            # QuotaExceededInfo will have details when the error code is
            # QUOTA_EXCEEDED.
          {
            &quot;errorInfo&quot;: { # Describes the cause of the error with structured details.
                #
                # Example of an error when contacting the &quot;pubsub.googleapis.com&quot; API when it
                # is not enabled:
                #
                #     { &quot;reason&quot;: &quot;API_DISABLED&quot;
                #       &quot;domain&quot;: &quot;googleapis.com&quot;
                #       &quot;metadata&quot;: {
                #         &quot;resource&quot;: &quot;projects/123&quot;,
                #         &quot;service&quot;: &quot;pubsub.googleapis.com&quot;
                #       }
                #     }
                #
                # This response indicates that the pubsub.googleapis.com API is not enabled.
                #
                # Example of an error that is returned when attempting to create a Spanner
                # instance in a region that is out of stock:
                #
                #     { &quot;reason&quot;: &quot;STOCKOUT&quot;
                #       &quot;domain&quot;: &quot;spanner.googleapis.com&quot;,
                #       &quot;metadata&quot;: {
                #         &quot;availableRegions&quot;: &quot;us-central1,us-east2&quot;
                #       }
                #     }
              &quot;domain&quot;: &quot;A String&quot;, # The logical grouping to which the &quot;reason&quot; belongs. The error domain
                  # is typically the registered service name of the tool or product that
                  # generates the error. Example: &quot;pubsub.googleapis.com&quot;. If the error is
                  # generated by some common infrastructure, the error domain must be a
                  # globally unique value that identifies the infrastructure. For Google API
                  # infrastructure, the error domain is &quot;googleapis.com&quot;.
              &quot;metadatas&quot;: { # Additional structured details about this error.
                  #
                  # Keys must match a regular expression of `a-z+` but should
                  # ideally be lowerCamelCase. Also, they must be limited to 64 characters in
                  # length. When identifying the current value of an exceeded limit, the units
                  # should be contained in the key, not the value.  For example, rather than
                  # `{&quot;instanceLimit&quot;: &quot;100/request&quot;}`, should be returned as,
                  # `{&quot;instanceLimitPerRequest&quot;: &quot;100&quot;}`, if the client exceeds the number of
                  # instances that can be created in a single (batch) request.
                &quot;a_key&quot;: &quot;A String&quot;,
              },
              &quot;reason&quot;: &quot;A String&quot;, # The reason of the error. This is a constant value that identifies the
                  # proximate cause of the error. Error reasons are unique within a particular
                  # domain of errors. This should be at most 63 characters and match a
                  # regular expression of `A-Z+[A-Z0-9]`, which represents
                  # UPPER_SNAKE_CASE.
            },
            &quot;help&quot;: { # Provides links to documentation or for performing an out of band action.
                #
                # For example, if a quota check failed with an error indicating the calling
                # project hasn&#x27;t enabled the accessed service, this can contain a URL pointing
                # directly to the right place in the developer console to flip the bit.
              &quot;links&quot;: [ # URL(s) pointing to additional information on handling the current error.
                { # Describes a URL link.
                  &quot;description&quot;: &quot;A String&quot;, # Describes what the link offers.
                  &quot;url&quot;: &quot;A String&quot;, # The URL of the link.
                },
              ],
            },
            &quot;localizedMessage&quot;: { # Provides a localized error message that is safe to return to the user
                # which can be attached to an RPC error.
              &quot;locale&quot;: &quot;A String&quot;, # The locale used following the specification defined at
                  # https://www.rfc-editor.org/rfc/bcp/bcp47.txt.
                  # Examples are: &quot;en-US&quot;, &quot;fr-CH&quot;, &quot;es-MX&quot;
              &quot;message&quot;: &quot;A String&quot;, # The localized error message in the above locale.
            },
            &quot;quotaInfo&quot;: { # Additional details for quota exceeded error for resource quota.
              &quot;dimensions&quot;: { # The map holding related quota dimensions.
                &quot;a_key&quot;: &quot;A String&quot;,
              },
              &quot;futureLimit&quot;: 3.14, # Future quota limit being rolled out. The limit&#x27;s unit depends on the quota
                  #  type or metric.
              &quot;limit&quot;: 3.14, # Current effective quota limit. The limit&#x27;s unit depends on the quota type
                  # or metric.
              &quot;limitName&quot;: &quot;A String&quot;, # The name of the quota limit.
              &quot;metricName&quot;: &quot;A String&quot;, # The Compute Engine quota metric name.
              &quot;rolloutStatus&quot;: &quot;A String&quot;, # Rollout status of the future quota limit.
            },
          },
        ],
        &quot;location&quot;: &quot;A String&quot;, # [Output Only] Indicates the field in the request that caused the error.
            # This property is optional.
        &quot;message&quot;: &quot;A String&quot;, # [Output Only] An optional, human-readable error message.
      },
    ],
  },
  &quot;httpErrorMessage&quot;: &quot;A String&quot;, # [Output Only] If the operation fails, this field contains the HTTP error
      # message that was returned, such as `NOT FOUND`.
  &quot;httpErrorStatusCode&quot;: 42, # [Output Only] If the operation fails, this field contains the HTTP error
      # status code that was returned. For example, a `404` means the
      # resource was not found.
  &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is
      # defined by the server.
  &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested.
      # This value is inRFC3339
      # text format.
  &quot;instancesBulkInsertOperationMetadata&quot;: {
    &quot;perLocationStatus&quot;: { # Status information per location (location name is key).
        # Example key: zones/us-central1-a
      &quot;a_key&quot;: {
        &quot;createdVmCount&quot;: 42, # [Output Only] Count of VMs successfully created so far.
        &quot;deletedVmCount&quot;: 42, # [Output Only] Count of VMs that got deleted during rollback.
        &quot;failedToCreateVmCount&quot;: 42, # [Output Only] Count of VMs that started creating but encountered an
            # error.
        &quot;status&quot;: &quot;A String&quot;, # [Output Only] Creation status of BulkInsert operation - information
            # if the flow is rolling forward or rolling back.
        &quot;targetVmCount&quot;: 42, # [Output Only] Count of VMs originally planned to be created.
      },
    },
  },
  &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for
      # Operation resources.
  &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
  &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a
      # group of operations results from a `bulkInsert` API request.
  &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`,
      # `update`, or `delete`, and so on.
  &quot;progress&quot;: 42, # [Output Only] An optional progress indicator that ranges from 0 to 100.
      # There is no requirement that this be linear or support any granularity of
      # operations. This should not be used to guess when the operation will be
      # complete. This number should monotonically increase as the operation
      # progresses.
  &quot;region&quot;: &quot;A String&quot;, # [Output Only] The URL of the region where the operation resides. Only
      # applicable when performing regional operations.
  &quot;selfLink&quot;: &quot;A String&quot;, # [Output Only] Server-defined URL for the resource.
  &quot;setCommonInstanceMetadataOperationMetadata&quot;: { # [Output Only] If the operation is for projects.setCommonInstanceMetadata,
      # this field will contain information on all underlying zonal actions and
      # their state.
    &quot;clientOperationId&quot;: &quot;A String&quot;, # [Output Only] The client operation id.
    &quot;perLocationOperations&quot;: { # [Output Only] Status information per location (location name is key).
        # Example key: zones/us-central1-a
      &quot;a_key&quot;: {
        &quot;error&quot;: { # The `Status` type defines a logical error model that is suitable for # [Output Only] If state is `ABANDONED` or `FAILED`, this field is
            # populated.
            # different programming environments, including REST APIs and RPC APIs. It is
            # used by [gRPC](https://github.com/grpc). Each `Status` message contains
            # three pieces of data: error code, error message, and error details.
            #
            # You can find out more about this error model and how to work with it in the
            # [API Design Guide](https://cloud.google.com/apis/design/errors).
          &quot;code&quot;: 42, # The status code, which should be an enum value of google.rpc.Code.
          &quot;details&quot;: [ # A list of messages that carry the error details.  There is a common set of
              # message types for APIs to use.
            {
              &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
            },
          ],
          &quot;message&quot;: &quot;A String&quot;, # A developer-facing error message, which should be in English. Any
              # user-facing error message should be localized and sent in the
              # google.rpc.Status.details field, or localized by the client.
        },
        &quot;state&quot;: &quot;A String&quot;, # [Output Only] Status of the action, which can be one of the following:
            # `PROPAGATING`, `PROPAGATED`, `ABANDONED`, `FAILED`, or `DONE`.
      },
    },
  },
  &quot;startTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was started by the server.
      # This value is inRFC3339
      # text format.
  &quot;status&quot;: &quot;A String&quot;, # [Output Only] The status of the operation, which can be one of the
      # following:
      # `PENDING`, `RUNNING`, or `DONE`.
  &quot;statusMessage&quot;: &quot;A String&quot;, # [Output Only] An optional textual description of the current status of the
      # operation.
  &quot;targetId&quot;: &quot;A String&quot;, # [Output Only] The unique target ID, which identifies a specific incarnation
      # of the target resource.
  &quot;targetLink&quot;: &quot;A String&quot;, # [Output Only] The URL of the resource that the operation modifies. For
      # operations related to creating a snapshot, this points to the disk
      # that the snapshot was created from.
  &quot;user&quot;: &quot;A String&quot;, # [Output Only] User who requested the operation, for example:
      # `user@example.com` or
      # `alice_smith_identifier (global/workforcePools/example-com-us-employees)`.
  &quot;warnings&quot;: [ # [Output Only] If warning messages are generated during processing of the
      # operation, this field will be populated.
    {
      &quot;code&quot;: &quot;A String&quot;, # [Output Only] A warning code, if applicable. For example, Compute
          # Engine returns NO_RESULTS_ON_PAGE if there
          # are no results in the response.
      &quot;data&quot;: [ # [Output Only] Metadata about this warning in key:
          # value format. For example:
          #
          # &quot;data&quot;: [
          #   {
          #    &quot;key&quot;: &quot;scope&quot;,
          #    &quot;value&quot;: &quot;zones/us-east1-d&quot;
          #   }
        {
          &quot;key&quot;: &quot;A String&quot;, # [Output Only] A key that provides more detail on the warning being
              # returned. For example, for warnings where there are no results in a list
              # request for a particular zone, this key might be scope and
              # the key value might be the zone name. Other examples might be a key
              # indicating a deprecated resource and a suggested replacement, or a
              # warning about invalid network settings (for example, if an instance
              # attempts to perform IP forwarding but is not enabled for IP forwarding).
          &quot;value&quot;: &quot;A String&quot;, # [Output Only] A warning data value corresponding to the key.
        },
      ],
      &quot;message&quot;: &quot;A String&quot;, # [Output Only] A human-readable description of the warning code.
    },
  ],
  &quot;zone&quot;: &quot;A String&quot;, # [Output Only] The URL of the zone where the operation resides. Only
      # applicable when performing per-zone operations.
}</pre>
</div>

<div class="method">
    <code class="details" id="setLabels">setLabels(project, region, resource, body=None, requestId=None, x__xgafv=None)</code>
  <pre>Sets the labels on an InterconnectAttachment. To learn more about labels,
read the Labeling
Resources documentation.

Args:
  project: string, Project ID for this request. (required)
  region: string, The region for this request. (required)
  resource: string, Name or id of the resource for this request. (required)
  body: object, The request body.
    The object takes the form of:

{
  &quot;labelFingerprint&quot;: &quot;A String&quot;, # The fingerprint of the previous set of labels for this resource,
      # used to detect conflicts. The fingerprint is initially generated by Compute
      # Engine and changes after every request to modify or update labels. You must
      # always provide an up-to-date fingerprint hash in order to update or change
      # labels. Make a get() request to the resource to get the latest
      # fingerprint.
  &quot;labels&quot;: { # The labels to set for this resource.
    &quot;a_key&quot;: &quot;A String&quot;,
  },
}

  requestId: string, An optional request ID to identify requests. Specify a unique request ID so
that if you must retry your request, the server will know to ignore the
request if it has already been completed.

For example, consider a situation where you make an initial request and
the request times out. If you make the request again with the same
request ID, the server can check if original operation with the same
request ID was received, and if so, will ignore the second request. This
prevents clients from accidentally creating duplicate commitments.

The request ID must be
a valid UUID with the exception that zero UUID is not supported
(00000000-0000-0000-0000-000000000000).
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # Represents an Operation resource.
    #
    # Google Compute Engine has three Operation resources:
    #
    # * [Global](/compute/docs/reference/rest/beta/globalOperations)
    # * [Regional](/compute/docs/reference/rest/beta/regionOperations)
    # * [Zonal](/compute/docs/reference/rest/beta/zoneOperations)
    #
    # You can use an operation resource to manage asynchronous API requests.
    # For more information, readHandling
    # API responses.
    #
    # Operations can be global, regional or zonal.
    #
    #    - For global operations, use the `globalOperations`
    #    resource.
    #    - For regional operations, use the
    #    `regionOperations` resource.
    #    - For zonal operations, use
    #    the `zoneOperations` resource.
    #
    #
    #
    # For more information, read
    # Global, Regional, and Zonal Resources.
    #
    # Note that completed Operation resources have a limited
    # retention period.
  &quot;clientOperationId&quot;: &quot;A String&quot;, # [Output Only] The value of `requestId` if you provided it in the request.
      # Not present otherwise.
  &quot;creationTimestamp&quot;: &quot;A String&quot;, # [Deprecated] This field is deprecated.
  &quot;description&quot;: &quot;A String&quot;, # [Output Only] A textual description of the operation, which is
      # set when the operation is created.
  &quot;endTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was completed. This value is inRFC3339
      # text format.
  &quot;error&quot;: { # [Output Only] If errors are generated during processing of the operation,
      # this field will be populated.
    &quot;errors&quot;: [ # [Output Only] The array of errors encountered while processing this
        # operation.
      {
        &quot;code&quot;: &quot;A String&quot;, # [Output Only] The error type identifier for this error.
        &quot;errorDetails&quot;: [ # [Output Only] An optional list of messages that contain the error
            # details. There is a set of defined message types to use for providing
            # details.The syntax depends on the error code. For example,
            # QuotaExceededInfo will have details when the error code is
            # QUOTA_EXCEEDED.
          {
            &quot;errorInfo&quot;: { # Describes the cause of the error with structured details.
                #
                # Example of an error when contacting the &quot;pubsub.googleapis.com&quot; API when it
                # is not enabled:
                #
                #     { &quot;reason&quot;: &quot;API_DISABLED&quot;
                #       &quot;domain&quot;: &quot;googleapis.com&quot;
                #       &quot;metadata&quot;: {
                #         &quot;resource&quot;: &quot;projects/123&quot;,
                #         &quot;service&quot;: &quot;pubsub.googleapis.com&quot;
                #       }
                #     }
                #
                # This response indicates that the pubsub.googleapis.com API is not enabled.
                #
                # Example of an error that is returned when attempting to create a Spanner
                # instance in a region that is out of stock:
                #
                #     { &quot;reason&quot;: &quot;STOCKOUT&quot;
                #       &quot;domain&quot;: &quot;spanner.googleapis.com&quot;,
                #       &quot;metadata&quot;: {
                #         &quot;availableRegions&quot;: &quot;us-central1,us-east2&quot;
                #       }
                #     }
              &quot;domain&quot;: &quot;A String&quot;, # The logical grouping to which the &quot;reason&quot; belongs. The error domain
                  # is typically the registered service name of the tool or product that
                  # generates the error. Example: &quot;pubsub.googleapis.com&quot;. If the error is
                  # generated by some common infrastructure, the error domain must be a
                  # globally unique value that identifies the infrastructure. For Google API
                  # infrastructure, the error domain is &quot;googleapis.com&quot;.
              &quot;metadatas&quot;: { # Additional structured details about this error.
                  #
                  # Keys must match a regular expression of `a-z+` but should
                  # ideally be lowerCamelCase. Also, they must be limited to 64 characters in
                  # length. When identifying the current value of an exceeded limit, the units
                  # should be contained in the key, not the value.  For example, rather than
                  # `{&quot;instanceLimit&quot;: &quot;100/request&quot;}`, should be returned as,
                  # `{&quot;instanceLimitPerRequest&quot;: &quot;100&quot;}`, if the client exceeds the number of
                  # instances that can be created in a single (batch) request.
                &quot;a_key&quot;: &quot;A String&quot;,
              },
              &quot;reason&quot;: &quot;A String&quot;, # The reason of the error. This is a constant value that identifies the
                  # proximate cause of the error. Error reasons are unique within a particular
                  # domain of errors. This should be at most 63 characters and match a
                  # regular expression of `A-Z+[A-Z0-9]`, which represents
                  # UPPER_SNAKE_CASE.
            },
            &quot;help&quot;: { # Provides links to documentation or for performing an out of band action.
                #
                # For example, if a quota check failed with an error indicating the calling
                # project hasn&#x27;t enabled the accessed service, this can contain a URL pointing
                # directly to the right place in the developer console to flip the bit.
              &quot;links&quot;: [ # URL(s) pointing to additional information on handling the current error.
                { # Describes a URL link.
                  &quot;description&quot;: &quot;A String&quot;, # Describes what the link offers.
                  &quot;url&quot;: &quot;A String&quot;, # The URL of the link.
                },
              ],
            },
            &quot;localizedMessage&quot;: { # Provides a localized error message that is safe to return to the user
                # which can be attached to an RPC error.
              &quot;locale&quot;: &quot;A String&quot;, # The locale used following the specification defined at
                  # https://www.rfc-editor.org/rfc/bcp/bcp47.txt.
                  # Examples are: &quot;en-US&quot;, &quot;fr-CH&quot;, &quot;es-MX&quot;
              &quot;message&quot;: &quot;A String&quot;, # The localized error message in the above locale.
            },
            &quot;quotaInfo&quot;: { # Additional details for quota exceeded error for resource quota.
              &quot;dimensions&quot;: { # The map holding related quota dimensions.
                &quot;a_key&quot;: &quot;A String&quot;,
              },
              &quot;futureLimit&quot;: 3.14, # Future quota limit being rolled out. The limit&#x27;s unit depends on the quota
                  #  type or metric.
              &quot;limit&quot;: 3.14, # Current effective quota limit. The limit&#x27;s unit depends on the quota type
                  # or metric.
              &quot;limitName&quot;: &quot;A String&quot;, # The name of the quota limit.
              &quot;metricName&quot;: &quot;A String&quot;, # The Compute Engine quota metric name.
              &quot;rolloutStatus&quot;: &quot;A String&quot;, # Rollout status of the future quota limit.
            },
          },
        ],
        &quot;location&quot;: &quot;A String&quot;, # [Output Only] Indicates the field in the request that caused the error.
            # This property is optional.
        &quot;message&quot;: &quot;A String&quot;, # [Output Only] An optional, human-readable error message.
      },
    ],
  },
  &quot;httpErrorMessage&quot;: &quot;A String&quot;, # [Output Only] If the operation fails, this field contains the HTTP error
      # message that was returned, such as `NOT FOUND`.
  &quot;httpErrorStatusCode&quot;: 42, # [Output Only] If the operation fails, this field contains the HTTP error
      # status code that was returned. For example, a `404` means the
      # resource was not found.
  &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the operation. This identifier is
      # defined by the server.
  &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested.
      # This value is inRFC3339
      # text format.
  &quot;instancesBulkInsertOperationMetadata&quot;: {
    &quot;perLocationStatus&quot;: { # Status information per location (location name is key).
        # Example key: zones/us-central1-a
      &quot;a_key&quot;: {
        &quot;createdVmCount&quot;: 42, # [Output Only] Count of VMs successfully created so far.
        &quot;deletedVmCount&quot;: 42, # [Output Only] Count of VMs that got deleted during rollback.
        &quot;failedToCreateVmCount&quot;: 42, # [Output Only] Count of VMs that started creating but encountered an
            # error.
        &quot;status&quot;: &quot;A String&quot;, # [Output Only] Creation status of BulkInsert operation - information
            # if the flow is rolling forward or rolling back.
        &quot;targetVmCount&quot;: 42, # [Output Only] Count of VMs originally planned to be created.
      },
    },
  },
  &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for
      # Operation resources.
  &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
  &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a
      # group of operations results from a `bulkInsert` API request.
  &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`,
      # `update`, or `delete`, and so on.
  &quot;progress&quot;: 42, # [Output Only] An optional progress indicator that ranges from 0 to 100.
      # There is no requirement that this be linear or support any granularity of
      # operations. This should not be used to guess when the operation will be
      # complete. This number should monotonically increase as the operation
      # progresses.
  &quot;region&quot;: &quot;A String&quot;, # [Output Only] The URL of the region where the operation resides. Only
      # applicable when performing regional operations.
  &quot;selfLink&quot;: &quot;A String&quot;, # [Output Only] Server-defined URL for the resource.
  &quot;setCommonInstanceMetadataOperationMetadata&quot;: { # [Output Only] If the operation is for projects.setCommonInstanceMetadata,
      # this field will contain information on all underlying zonal actions and
      # their state.
    &quot;clientOperationId&quot;: &quot;A String&quot;, # [Output Only] The client operation id.
    &quot;perLocationOperations&quot;: { # [Output Only] Status information per location (location name is key).
        # Example key: zones/us-central1-a
      &quot;a_key&quot;: {
        &quot;error&quot;: { # The `Status` type defines a logical error model that is suitable for # [Output Only] If state is `ABANDONED` or `FAILED`, this field is
            # populated.
            # different programming environments, including REST APIs and RPC APIs. It is
            # used by [gRPC](https://github.com/grpc). Each `Status` message contains
            # three pieces of data: error code, error message, and error details.
            #
            # You can find out more about this error model and how to work with it in the
            # [API Design Guide](https://cloud.google.com/apis/design/errors).
          &quot;code&quot;: 42, # The status code, which should be an enum value of google.rpc.Code.
          &quot;details&quot;: [ # A list of messages that carry the error details.  There is a common set of
              # message types for APIs to use.
            {
              &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
            },
          ],
          &quot;message&quot;: &quot;A String&quot;, # A developer-facing error message, which should be in English. Any
              # user-facing error message should be localized and sent in the
              # google.rpc.Status.details field, or localized by the client.
        },
        &quot;state&quot;: &quot;A String&quot;, # [Output Only] Status of the action, which can be one of the following:
            # `PROPAGATING`, `PROPAGATED`, `ABANDONED`, `FAILED`, or `DONE`.
      },
    },
  },
  &quot;startTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was started by the server.
      # This value is inRFC3339
      # text format.
  &quot;status&quot;: &quot;A String&quot;, # [Output Only] The status of the operation, which can be one of the
      # following:
      # `PENDING`, `RUNNING`, or `DONE`.
  &quot;statusMessage&quot;: &quot;A String&quot;, # [Output Only] An optional textual description of the current status of the
      # operation.
  &quot;targetId&quot;: &quot;A String&quot;, # [Output Only] The unique target ID, which identifies a specific incarnation
      # of the target resource.
  &quot;targetLink&quot;: &quot;A String&quot;, # [Output Only] The URL of the resource that the operation modifies. For
      # operations related to creating a snapshot, this points to the disk
      # that the snapshot was created from.
  &quot;user&quot;: &quot;A String&quot;, # [Output Only] User who requested the operation, for example:
      # `user@example.com` or
      # `alice_smith_identifier (global/workforcePools/example-com-us-employees)`.
  &quot;warnings&quot;: [ # [Output Only] If warning messages are generated during processing of the
      # operation, this field will be populated.
    {
      &quot;code&quot;: &quot;A String&quot;, # [Output Only] A warning code, if applicable. For example, Compute
          # Engine returns NO_RESULTS_ON_PAGE if there
          # are no results in the response.
      &quot;data&quot;: [ # [Output Only] Metadata about this warning in key:
          # value format. For example:
          #
          # &quot;data&quot;: [
          #   {
          #    &quot;key&quot;: &quot;scope&quot;,
          #    &quot;value&quot;: &quot;zones/us-east1-d&quot;
          #   }
        {
          &quot;key&quot;: &quot;A String&quot;, # [Output Only] A key that provides more detail on the warning being
              # returned. For example, for warnings where there are no results in a list
              # request for a particular zone, this key might be scope and
              # the key value might be the zone name. Other examples might be a key
              # indicating a deprecated resource and a suggested replacement, or a
              # warning about invalid network settings (for example, if an instance
              # attempts to perform IP forwarding but is not enabled for IP forwarding).
          &quot;value&quot;: &quot;A String&quot;, # [Output Only] A warning data value corresponding to the key.
        },
      ],
      &quot;message&quot;: &quot;A String&quot;, # [Output Only] A human-readable description of the warning code.
    },
  ],
  &quot;zone&quot;: &quot;A String&quot;, # [Output Only] The URL of the zone where the operation resides. Only
      # applicable when performing per-zone operations.
}</pre>
</div>

<div class="method">
    <code class="details" id="testIamPermissions">testIamPermissions(project, region, resource, body=None, x__xgafv=None)</code>
  <pre>Returns permissions that a caller has on the specified resource.

Args:
  project: string, Project ID for this request. (required)
  region: string, The name of the region for this request. (required)
  resource: string, Name or id of the resource for this request. (required)
  body: object, The request body.
    The object takes the form of:

{
  &quot;permissions&quot;: [ # The set of permissions to check for the &#x27;resource&#x27;. Permissions with
      # wildcards (such as &#x27;*&#x27; or &#x27;storage.*&#x27;) are not allowed.
    &quot;A String&quot;,
  ],
}

  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    {
  &quot;permissions&quot;: [ # A subset of `TestPermissionsRequest.permissions` that the caller is
      # allowed.
    &quot;A String&quot;,
  ],
}</pre>
</div>

</body></html>